LinkedHashMap es una implementación de tablas hash y listas enlazadas de la interfaz Map, con un orden de iteración predecible. Esta implementación se diferencia de HashMap en que mantiene una lista de doble enlace que atraviesa todas sus entradas. Esta lista vinculada define el orden de iteración, que normalmente es el orden en el que se insertaron las claves en el mapa (orden de inserción). En los últimos tutoriales hemos hablado de HashMap y TreeMap. Esta clase es diferente de ambas:
-
HashMap
no mantiene ningún orden. -
TreeMap
ordenar las entradas en orden ascendente de claves. -
LinkedHashMap
mantiene la orden de inserción.
Entendemos el LinkedHashMap
con la ayuda de un ejemplo:
import java.util.LinkedHashMap; import java.util.Set; import java.util.Iterator; import java.util.Map; public class LinkedHashMapDemo { public static void main(String args[]) { // HashMap Declaration LinkedHashMap<Integer, String> lhmap = new LinkedHashMap<Integer, String>(); //Adding elements to LinkedHashMap lhmap.put(22, "Abey"); lhmap.put(33, "Dawn"); lhmap.put(1, "Sherry"); lhmap.put(2, "Karon"); lhmap.put(100, "Jim"); // Generating a Set of entries Set set = lhmap.entrySet(); // Displaying elements of LinkedHashMap Iterator iterator = set.iterator(); while(iterator.hasNext()) { Map.Entry me = (Map.Entry)iterator.next(); System.out.print("Key is: "+ me.getKey() + "& Value is: "+me.getValue()+"n"); } } }
Producción:
Key is: 22& Value is: Abey Key is: 33& Value is: Dawn Key is: 1& Value is: Sherry Key is: 2& Value is: Karon Key is: 100& Value is: Jim
Como puede ver, los valores se devuelven en el mismo orden en que se ingresaron.