logo

Razlika između HashSet i HashMap klase u Javi

The HashMap i HashSet u Javi su najpopularnije klase Collection. Oba se koriste za strukturu podataka. Sljedeća tablica opisuje razliku između HashMap i HashSet:

font gimp
Osnova HashMap HashSet
Definicija Java HashMap je implementacija sučelja karte temeljena na hash tablici. HashSet je skup. Stvara zbirku koja za pohranu koristi hash tablicu.
Provedba HashMap implementira Kartiranje, kloniranje i serijalizacija sučelje es. HashSet implementira Postavljanje, kloniranje, serijalizacija, iteracija i Kolekcija sučelja.
Trgovine U HashMapu pohranjujemo a par ključ-vrijednost . Održava preslikavanje ključa i vrijednosti. U HashSet-u pohranjujemo objekti .
Duplicirane vrijednosti Ne dopušta dupli ključevi , ali duplicirane vrijednosti su dozvoljeno . Ne dopušta duplicirane vrijednosti .
Nulte vrijednosti Može sadržavati a jedan nulti ključ i višestruke nulte vrijednosti . Može sadržavati jednu nultu vrijednost .
Način umetanja HashMap koristi staviti() metoda za dodavanje elemenata u HashMap. HashSet koristi dodati() metoda za dodavanje elemenata u HashSet.
Izvođenje HashMap je brže/ nego HashSet jer su vrijednosti povezane s jedinstvenim ključem. HashSet je sporije nego HashMap jer se objekt član koristi za izračun vrijednosti hashcodea, koja može biti ista za dva objekta.
Broj objekata Samo jedan objekt se stvara tijekom operacije dodavanja. Tamo su dva objekti nastali tijekom operacije, jedan za ključ i jedan za vrijednost .
Mehanizam za pohranu HashMap interno koristi raspršivanje za pohranjivanje predmeta. HashSet interno koristi a HashMap objekt za pohranjivanje objekata.
Koristi Uvijek radije kada ne održavamo jedinstvenost . Koristi se kada trebamo održavati jedinstvenost podataka.
Primjer {a->4, b->9, c->5} Gdje a, b, c su ključevi i 4, 9, 5 su vrijednosti povezan s ključem. {6, 43, 2, 90, 4} Označava skup.

Shvatimo razlike kroz programe.

Primjer HashMapa

U sljedećem primjeru, kada dodamo duplikat elementa s istim ključem i različitom vrijednošću, tada se prethodna vrijednost ključa zamjenjuje novom vrijednošću.

Kada dodamo duplicirani element s istim ključem i istom vrijednošću, tada se par ključ-vrijednost ne pohranjuje drugi put.

 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); } } 

Izlaz:

Razlika između HashSet i HashMap klase u Javi

Primjer HashSeta

U sljedećem primjeru možemo vidjeti da se duplicirane vrijednosti ne pohranjuju u HashSet i da se nulta vrijednost pohranjuje samo jednom.

 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); } } 

Izlaz:

Razlika između HashSet i HashMap klase u Javi