Cuando los elementos se obtienen del HashMap debido al hash, el orden en que se insertaron no se mantiene durante la recuperación. Podemos lograr la tarea dada usando LinkedHashMap. La clase LinkedHashMap implementa una lista doblemente enlazada para que pueda atravesar todos los elementos.
Ejemplo:
Input : HashMapInput = {c=6, a=1, b=2} Output: HashMapPrint = {c=6, a=1, b=2} Input : HashMapInput = {"first"=1, "second"=3} Output: HashMapPrint = {"first"=1, "second"=3}
Sintaxis:
LinkedHashMap público (mapa m)
Crea un objeto de la clase LinkedHashMap con las mismas asignaciones especificadas en el objeto Map original.
Pedido no mantenido aquí: Implementación de HashMap:
Java
// Java Program to maintain insertion order // of the elements in HashMap // Using HashMap (Order not maintain) import java.io.*; import java.util.*; class GFG { public static void main(String args[]) { // creating a hashmap HashMap<String, String> hm = new HashMap<>(); // putting elements hm.put("01", "aaaaaaa"); hm.put("03", "bbbbbbb"); hm.put("04", "zzzzzzz"); hm.put("02", "kkkkkkk"); System.out.println("Iterate over original HashMap"); // printing hashmap for (Map.Entry<String, String> entry : hm.entrySet()) { System.out.println(entry.getKey() + " => " + ": " + entry.getValue()); } } }
Producción
Iterate over original HashMap 01 => : aaaaaaa 02 => : kkkkkkk 03 => : bbbbbbb 04 => : zzzzzzz
Aquí, el orden de inserción original de HashMap es [01, 03, 04, 02], pero la salida es diferente [01, 02, 03, 04]. No mantuvo el orden de inserción original de los elementos.
Mantener orden aquí: implementación de LinkedHashMap
Java
// Java Program to maintain insertion order // of the elements in HashMap // LinkedHashMap import java.io.*; import java.util.*; class GFG { public static void main(String args[]) { // creating a hashmap HashMap<String, String> hm = new LinkedHashMap<>(); // putting elements hm.put("01", "aaaaaaa"); hm.put("03", "bbbbbbb"); hm.put("04", "zzzzzzz"); hm.put("02", "kkkkkkk"); // printing LinkedHashMap System.out.println("Iterate over LinkedHashMap"); for (Map.Entry<String, String> entry : hm.entrySet()) { System.out.println(entry.getKey() + " => " + ": " + entry.getValue()); } } }
Producción
Iterate over LinkedHashMap 01 => : aaaaaaa 03 => : bbbbbbb 04 => : zzzzzzz 02 => : kkkkkkk