Open In App

LinkedHashMap and LinkedHashSet in Java

Last Updated : 21 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




// Java program to demonstrate
// working of LinkedHashMap
import java.util.*;
 
class LinkedHashMapExample {
 
    public static void main(String args[])
    {
 
        // create an instance of LinkedHashMap
        LinkedHashMap<Integer, String> lhm;
        lhm = new LinkedHashMap<Integer, String>();
 
        // insert element in LinkedHashMap
        lhm.put(100, "Amit");
 
        // insert first null key
        lhm.put(null, "Ajay");
        lhm.put(101, "Vijay");
        lhm.put(102, "Rahul");
 
        // insert second null key
        // which replace first null key value
        lhm.put(null, "Anuj");
 
        // insert duplicate
        // which replace first 102 key value
        lhm.put(102, "Saurav");
 
        // iterate and print the key/value pairs
        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




// Java program to demonstrate
// working of LinkedHashSet
import java.util.*;
 
class LinkedHashSetExample {
 
    public static void main(String args[])
    {
        // create an instance of LinkedHashSet
        LinkedHashSet<String> lhs
            = new LinkedHashSet<String>();
 
        // insert element in LinkedHashMap
        lhs.add("Amit");
 
        // insert first null key
        lhs.add(null);
        lhs.add("Vijay");
        lhs.add("Rahul");
 
        // insert second null key
        // which replace first null key value
        lhs.add(null);
        // insert duplicate
        lhs.add("Vijay");
 
        // create an iterator
        // iterate and print the elements
        Iterator<String> itr = lhs.iterator();
        while (itr.hasNext()) {
            System.out.println(itr.next());
        }
    }
}


 
 

Output

Amit
null
Vijay
Rahul

 

The Hierarchy of LinkedHashMap and LinkedHashSet
 

 

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.

 

 



Previous Article
Next Article

Similar Reads

Maven Project - LinkedHashMap and LinkedHashSet usage Along with JUnit Testing
In software programming, there are many instances where we need the usage of LinkedHashMap and LinkedHashSet. LinkedHashSet Though HashSet is available, if we need the ordered version of HashSet, we need the LinkedHashSet. The advantage is when we iterate the LinkedHashSet, we get the display of the elements in the inserted order. Because of the ex
7 min read
Difference and similarities between HashSet, LinkedHashSet and TreeSet in Java
In this article, we will learn, the difference between HashSet vs LinkedHashSet and TreeSet And similarities between LinkedHashSet and TreeSet. HashSet, LinkedHashSet, and TreeSet all implement the Set interface. So we have tried to list out the differences and similarities between HashSet, LinkedHashSet, and TreeSet in java. Differences Between Ha
6 min read
Print characters and their frequencies in order of occurrence using a LinkedHashMap in Java
Given a string str containing only lowercase characters. The task is to print the characters along with their frequencies in the order of their occurrence in the given string.Examples: Input: str = "geeksforgeeks" Output: g2 e4 k2 s2 f1 o1 r1Input: str = "helloworld" Output: h1 e1 l3 o2 w1 r1 d1 Approach: Traverse the given string character by char
2 min read
Differences between TreeMap, HashMap and LinkedHashMap in Java
Prerequisite : HashMap and TreeMap in Java TreeMap, HashMap and LinkedHashMap: What's Similar? All offer a key-&gt;value map and a way to iterate through the keys. The most important distinction between these classes is the time guarantees and the ordering of the keys.All three classes HashMap, TreeMap and LinkedHashMap implements java.util.Map int
5 min read
Difference Between LinkedList and LinkedHashSet in Java
In this article you will learn difference between LinkedList and LinkedHashSet in java. Prerequisite: LinkedList : LinkedHashSet LinkedList class implements the List and Deque interface and extends from AbstractSequentialList class. LinkedList class uses doubly linked list to store the elements. It provides a linked-list data structure. Java Linked
3 min read
How to Convert a LinkedHashSet into an Array and List in Java?
In Java, LinkedHashSet is a predefined class of Java that extends the HashSet and it implements the Set interface. It can be used to implement the doubly linked list of the elements in the set, and it provides the predictable iteration order. In this article, we will learn how to convert a LinkedHashSet into an Array and List in Java. Step-by-Step
3 min read
Applying Custom Hashcode and LinkedHashSet for Object Storage in Java
The LinkedHashSet is an ordered version of HashSet that maintains a doubly linked list across all elements. Unlike a regular HashSet, which has unpredictable iteration order, a LinkedHashSet allows us to iterate through elements in the order they were inserted. It's useful when maintaining insertion order. In this article, we will learn how to use
5 min read
LinkedHashMap containsKey() Method in Java with Examples
The java.util.LinkedHashMap.containsKey() method is used to check whether a particular key is being mapped into the LinkedHashMap or not. It takes the key element as a parameter and returns True if that element is mapped in the map.Syntax: Linked_Hash_Map.containsKey(key_element) Parameters: The method takes just one parameter key_element that refe
2 min read
LinkedHashMap clear() Method in Java
The java.util.LinkedHashMap.clear() is an inbuilt method of LinkedHashMap class in Java and is used to clear all the elements or the mappings from the denoted LinkedHashMap. The map will become empty after the operation is performed. Syntax: Linked_Hash_Map.clear() Parameters: The method does not take any parameters. Return Value: The method does n
2 min read
LinkedHashMap get() Method in Java with Examples
In Java, get() method of LinkedHashMap class is used to retrieve or fetch the value mapped by a particular key mentioned in the parameter. It returns NULL when the map contains no such mapping for the key. --&gt; java.util Package --&gt; LinkedHashMap Class --&gt; get() Method Syntax: Linked_Hash_Map.get(Object key_element) Parameter: One parameter
2 min read