LinkedHashMap
LinkedHashMap is under Java Collection API and it implements Map interface. LinkedHashMap also works as same as HashMap with only 1 difference. Lets see the properties of LinkedHashMap class in Java
Now lets see simple example for LinkedHashMap and how to use it and also lets test the insertion order in both collection classes.
OUTPUT:
In above program we have added 4 values in HashMap and LinkedHashMap. Next when we print those key and value we can see the difference between both like HashMap insertion order not maintained while printing. Where as in LinkedHashMap its same as insertion order.
- It works based on key and value as same as HashMap.
- It implements Map interface and extends HashMap class, so that it acquires all properties of HashMap class.
- It can hold 1 null key and multiple null values.
- Only difference between HashMap and LinkedHashMap is interstion order. LinkedHashMap maintains the insertion order where as in HashMap its not.
Now lets see simple example for LinkedHashMap and how to use it and also lets test the insertion order in both collection classes.
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class LinkedHashMapTest {
public static void main(String[] args) {
Map<String, String> hm = new HashMap<String, String>();
Map<String, String> lhm = new LinkedHashMap<String, String>();
hm.put("1", "one");
hm.put("2", "two");
hm.put("3", "three");
hm.put("4", "four");
lhm.put("1", "one");
lhm.put("2", "two");
lhm.put("3", "three");
lhm.put("4", "four");
// Printing HashMap values.
System.out.println("HasnMap Key and Value :::::::::::::::");
Set<Entry<String, String>> set = hm.entrySet();
Iterator<Entry<String, String>> itr = set.iterator();
while(itr.hasNext()){
Map.Entry<String, String> map = itr.next();
System.out.println(map.getKey() +" : "+map.getValue());
}
// Printing LinkedHashMap values.
System.out.println("HasnMap Key and Value :::::::::::::::");
Set<Entry<String, String>> set1 = lhm.entrySet();
Iterator<Entry<String, String>> itr1 = set1.iterator();
while(itr1.hasNext()){
Map.Entry<String, String> map1 = itr1.next();
System.out.println(map1.getKey() +" : "+map1.getValue());
}
}
}
OUTPUT:
HasnMap Key and Value :::::::::::::::
3 : three
2 : two
1 : one
4 : four
HasnMap Key and Value :::::::::::::::
1 : one
2 : two
3 : three
4 : four
In above program we have added 4 values in HashMap and LinkedHashMap. Next when we print those key and value we can see the difference between both like HashMap insertion order not maintained while printing. Where as in LinkedHashMap its same as insertion order.