Buscar en el Blog

Mostrando entradas con la etiqueta orden. Mostrar todas las entradas
Mostrando entradas con la etiqueta orden. Mostrar todas las entradas

martes, 28 de agosto de 2012

Cómo preservar el orden de los elementos de un HashMap

Cuándo usamos un HashMap en Java y consultamos sus elementos ya sean las claves o los valores, éstos por defecto se nos devuelven ordenados.

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