Difference between HashMap and HashSet in Java.

HashMap and HashSet both are one of the most important classes of Java Collection framework.

Following are the important differences between HashMap and HashSet.

Sr. No. Key HashMap HashSet
1 Implementation Hashmap is the implementation of Map interface. Hashset on other hand is the implementation of set interface.
2 Internal implementation Hashmap internally do not implements hashset or any set for its implementation. Hashset internally uses Hashmap for its implementation.
3 Storage of elements HashMap Stores elements in form of key-value pair i.e each element has its corresponding key which is required for its retrieval during iteration. HashSet stores only objects no such key value pairs maintained.
4 Method to add element Put method of hash map is used to add element in hashmap. On other hand add method of hashset is used to add element in hashset.
5 Index performance Hashmap due to its unique key is faster in retrieval of element during its iteration. HashSet is completely based on object so compared to hashmap is slower.
6 Null Allowed Single null key and any number of null value can be inserted in hashmap without any restriction. On other hand Hashset allows only one null value in its collection,after which no null value is allowed to be added.

Example of Hashmap vs Hashset

JavaTester.java

<span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">HashSet</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">JavaTester</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">){</span><span class="pln">
      </span><span class="typ">HashSet</span><span class="pun"><</span><span class="typ">String</span><span class="pun">></span><span class="pln"> hs </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">HashSet</span><span class="pun"><</span><span class="typ">String</span><span class="pun">>();</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"John"</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Smith"</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Peter"</span><span class="pun">);</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Before adding duplicate values \n\n"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> hs</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"John"</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="str">"Smith"</span><span class="pun">);</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"\nAfter adding duplicate values \n\n"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> hs</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">);</span><span class="pln">
      hs</span><span class="pun">.</span><span class="kwd">add</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">);</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"\nAfter adding null values \n\n"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> hs</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>

Output

Before adding duplicate values
[John, Smith, Peter]
After adding duplicate values
[John, Smith, Peter]
After adding null values
[null, John, Smith, Peter]

Example

JavaTester.java

<span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">HashMap</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">JavaTester</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">){</span><span class="pln">
      </span><span class="typ">HashMap</span><span class="pun"><</span><span class="typ">Integer</span><span class="pun">,</span><span class="pln"> </span><span class="typ">String</span><span class="pun">></span><span class="pln"> hm </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">HashMap</span><span class="pun"><</span><span class="typ">Integer</span><span class="pun">,</span><span class="pln"> </span><span class="typ">String</span><span class="pun">>();</span><span class="pln">
      hm</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="lit">12</span><span class="pun">,</span><span class="pln"> </span><span class="str">"John"</span><span class="pun">);</span><span class="pln">
      hm</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Smith"</span><span class="pun">);</span><span class="pln">
      hm</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="lit">7</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Peter"</span><span class="pun">);</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"\nHashMap object output :\n\n"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> hm</span><span class="pun">);</span><span class="pln">
      hm</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="lit">12</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Smith"</span><span class="pun">);</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"\nAfter inserting duplicate key :\n\n"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> hm</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>

Output

HashMap object output :
{2=Smith, 7=Peter, 12=John}
After inserting duplicate key :
{2=Smith, 7=Peter, 12=John}
Updated on: 2026-03-11T20:10:07+05:30

27K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements