The LinkedHashMap is just like HashMap with an additional feature of maintaining an order of elements inserted into it. HashMap provided the advantage of quick insertion, search, and deletion but it never maintained the track and order of insertion which the LinkedHashMap provides where the elements can be accessed in their insertion order.
Example:
Java
import java.util.*;
class LinkedHashMapExample {
public static void main(String args[])
{
LinkedHashMap<Integer, String> lhm;
lhm = new LinkedHashMap<Integer, String>();
lhm.put( 100 , "Amit" );
lhm.put( null , "Ajay" );
lhm.put( 101 , "Vijay" );
lhm.put( 102 , "Rahul" );
lhm.put( null , "Anuj" );
lhm.put( 102 , "Saurav" );
lhm.entrySet().stream().forEach((m) -> {
System.out.println(m.getKey() + " "
+ m.getValue());
});
}
}
|
Output
100 Amit
null Anuj
101 Vijay
102 Saurav
The LinkedHashSet is an ordered version of HashSet that maintains a doubly-linked List across all elements. When the iteration order is needed to be maintained this class is used. When iterating through a HashSet the order is unpredictable, while a LinkedHashSet lets us iterate through the elements in the order in which they were inserted. When cycling through LinkedHashSet using an iterator, the elements will be returned in the order in which they were inserted.
Example:
Java
import java.util.*;
class LinkedHashSetExample {
public static void main(String args[])
{
LinkedHashSet<String> lhs
= new LinkedHashSet<String>();
lhs.add( "Amit" );
lhs.add( null );
lhs.add( "Vijay" );
lhs.add( "Rahul" );
lhs.add( null );
lhs.add( "Vijay" );
Iterator<String> itr = lhs.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
|
Output
Amit
null
Vijay
Rahul
The Hierarchy of LinkedHashMap and LinkedHashSet

Similarities between LinkedHashMap and LinkedHashSet
Property
|
LinkedHashMap and LinkedHashSet
|
Order |
Both LinkedHashMap and LinkedHashSet maintain the insertion order. Elements get sorted in the same sequence in which they have been added. |
Synchronized |
Both are not synchronized and must be synchronized externally. |
Duplicates |
LinkedHashMap does a mapping of keys to values so it doesn’t have duplicates and LinkedHashSet simply stores a collection of things with no duplicates. |
Memory |
Keeping the insertion order in both LinkedHashmap and LinkedHashset have additional associated costs, both in terms of spending additional CPU cycles and needing more memory. |
Differences between LinkedHashMap and LinkedHashSet
Property
|
LinkedHashMap
|
LinkedHashSet
|
Declaration |
The default constructor declaration is :
LinkedHashMap lhm = new LinkedHashMap();
|
The default constructor declaration is :
LinkedHashSet hs = new LinkedHashSet();
|
Class Declaration |
public class LinkedHashMap<K, V> extends HashMap<K, V> implements Map<K, V> |
public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, Serializable |
Constructor |
The LinkedHashMap accepts five types of constructors:
- LinkedHashMap()
- LinkedHashMap(int initialCapacity)
- LinkedHashMap(int initialCapacity, float fillRatio)
- LinkedHashMap(int initialCapacity, float fillRatio, boolean Order)
- LinkedHashMap​(Map<? extends K,​? extends V> m)
|
The LinkedHashSet accepts four types of constructors:
- LinkedHashSet()
- LinkedHashSet(Collection<? extends E> C)
- LinkedHashSet(int initialCapacity)
- LinkedHashSet(int initialCapacity, float fillRatio)
|
Operation |
LinkedHashMap does a mapping of keys to values. |
LinkedHashSet simply stores a collection of things. |
Replacement |
LinkedHashMap replaces the value with a duplicate key. |
LinkedHashSet not change the original value. |
Null Object |
LinkedHashMap has elements in key-value pairs so have only one null key and multiple null values. |
LinkedHashSet simply stores a collection of things with one null value. |
Feeling lost in the vast world of Backend Development? It's time for a change! Join our
Java Backend Development - Live Course and embark on an exciting journey to master backend development efficiently and on schedule.
What We Offer:
- Comprehensive Course
- Expert Guidance for Efficient Learning
- Hands-on Experience with Real-world Projects
- Proven Track Record with 100,000+ Successful Geeks
Last Updated :
21 Feb, 2023
Like Article
Save Article