logo

Skillnaden mellan HashSet och HashMap-klassen i Java

De HashMap och HashSet i Java är de mest populära samlingsklasserna. Båda används för datastrukturen. Följande tabell beskriver skillnaden mellan HashMap och HashSet:

Grund HashMap HashSet
Definition Java HashMap är en hashtabellbaserad implementering av Map-gränssnittet. HashSet är en uppsättning. Det skapar en samling som använder en hashtabell för lagring.
Genomförande HashMap implementerar Karta, Klonbar och Serialiserbar gränssnitt es. HashSet implementerar Set, Klonbar, Serialiserbar, Iterable och Samling gränssnitt.
Butiker I HashMap lagrar vi en nyckel-värde par . Det upprätthåller kartläggningen av nyckel och värde. I HashSet lagrar vi föremål .
Dubbletter av värden Det tillåter inte dubbletter av nycklar , men dubbletter av värden är tillåten . Det tillåter inte dubbletter av värden .
Nullvärden Den kan innehålla en enda nollnyckel och flera nollvärden . Den kan innehålla ett enda nollvärde .
Metod för insättning HashMap använder sätta() metod för att lägga till elementen i HashMap. HashSet använder Lägg till() metod för att lägga till element i HashSet.
Prestanda HashMap är snabbare/ än HashSet eftersom värden är associerade med en unik nyckel. HashSet är långsammare än HashMap eftersom medlemsobjektet används för att beräkna hashkodvärde, som kan vara samma för två objekt.
Antalet objekt Endast ett objekt skapas under tilläggsoperationen. Det finns två objekt skapade under put operation, en för nyckel och en för värde .
Lagringsmekanism HashMap använder internt hashning att lagra föremål. HashSet använder internt en HashMap objekt för att lagra objekt.
Används Föredrar alltid när vi inte underhåller unikhet . Den används när vi behöver underhålla unikhet av data.
Exempel {a->4, b->9, c->5} Var a, b, c är nycklar och 4, 9, 5 är värden associerad med nyckel. {6, 43, 2, 90, 4} Det betecknar en uppsättning.

Låt oss förstå skillnaderna genom program.

Exempel på HashMap

I följande exempel, när vi lägger till ett dubblettelement med samma nyckel och ett annat värde, ersätts det tidigare värdet på nyckeln med det nya värdet.

När vi lägger till ett duplicerat element med samma nyckel och samma värde, lagras inte nyckel-värdeparet andra gången.

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

Produktion:

Skillnaden mellan HashSet och HashMap-klassen i Java

Exempel på HashSet

I följande exempel kan vi se att dubblettvärdena inte lagras i HashSet och nullvärdet lagras bara en gång.

 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

Produktion:

Skillnaden mellan HashSet och HashMap-klassen i Java