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
Muchas gracias! era justo lo que necesitaba!
ResponderEliminarMuchisimas gracias!! No sabia que existiera, me ha venido de perlas!!
ResponderEliminarGracias por la informacion
ResponderEliminarMuy bien gracias
ResponderEliminarHola, una cosilla, desde mi experiencia en un HashMap el orden de los elementos se establece por un código hash de los elementos que se meten en el mapa. Pero no se asegura que el orden sea entendible por el usuario.
ResponderEliminarGracias amigo!
ResponderEliminarmuchas gracias ! lo utilice para un proyecto de android y trabaja excelente
ResponderEliminarMuchas gracias me servio tal cual , era justo lo que necesitaba.
ResponderEliminarCrack, justo lo que buscaba
ResponderEliminar