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