En ocasiones, éste comportamiento por defecto de un HashMap no nos conviene, por lo que para preservar el orden de cómo ingresamos los elementos es preferible usar un LinkedHashMap .
En la siguiente clase Java se ilustra éste comportamiento usando un HashMap y un LinkedHashMap .
public class HashMapTest {
public static void main(String[] args) {
System.out.println("Mapa Ordenado usando HashMap...");
HashMap<String, Object> sortMap = new HashMap<String, Object>();
sortMap.put("B", new Integer(2));
sortMap.put("Z", new Integer(1));
sortMap.put("A", new Integer(9));
for (Map.Entry entry : sortMap.entrySet()) {
System.out.println("Clave : " + entry.getKey()
+ " Valor : " + entry.getValue());
}
System.out.println("\nMapa Preservando el Orden usando LinkedHashMap...");
LinkedHashMap<String, Object> unsortMap = new LinkedHashMap<String, Object>();
unsortMap.put("B", new Integer(2));
unsortMap.put("Z", new Integer(1));
unsortMap.put("A", new Integer(9));
for (Map.Entry entry : unsortMap.entrySet()) {
System.out.println("Clave : " + entry.getKey()
+ " Valor : " + entry.getValue());
}
}
}
El resultado de la ejecución de éste programa es el siguiente:
Mapa Ordenado usando HashMap... Clave : A Valor : 9 Clave : B Valor : 2 Clave : Z Valor : 1 Mapa Preservando el Orden usando LinkedHashMap... Clave : B Valor : 2 Clave : Z Valor : 1 Clave : A Valor : 9