¿Cómo mantener el orden de inserción de los elementos en Java HashMap?

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

Publicación traducida automáticamente

Artículo escrito por abhaybcg3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *