How to Maintain Insertion Order of the Elements in Java HashMap?

https://www.geeksforgeeks.org/how-to-maintain-insertion-order-of-the-elements-in-java-hashmap/

 

When elements get from the HashMap due to hashing the order they inserted is not maintained while retrieval. We can achieve the given task using LinkedHashMap. The LinkedHashMap class implements a doubly-linked list so that it can traverse through all the elements.

Example:

 
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}

Syntax:

public LinkedHashMap(Map m)

 

It creates an object of the LinkedHashMap class with the same mappings specified in the original Map object.

Order Not Maintain Here: HashMap Implementation:

  • 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());
        }
    }
}
Output
Iterate over original HashMap
01 => : aaaaaaa
02 => : kkkkkkk
03 => : bbbbbbb
04 => : zzzzzzz

Here, the original insertion order of HashMap is [01, 03, 04, 02], but the output is different [01, 02, 03, 04]. It did not maintain the original insertion order of the elements.

Order Maintain Here: LinkedHashMap implementation

  • 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());
        }
    }
}
Output
Iterate over LinkedHashMap
01 => : aaaaaaa
03 => : bbbbbbb
04 => : zzzzzzz
02 => : kkkkkkk
posted @ 2022-12-31 15:32  功夫 熊猫  阅读(36)  评论(0)    收藏  举报