logo

Razlika med razredoma HashSet in HashMap v Javi

The HashMap in HashSet v Javi so najbolj priljubljeni razredi zbirke. Oba se uporabljata za strukturo podatkov. Naslednja tabela opisuje razliko med HashMap in HashSet:

Osnova HashMap HashSet
Opredelitev Java HashMap je izvedba vmesnika Map, ki temelji na razpršilni tabeli. HashSet je Set. Ustvari zbirko, ki za shranjevanje uporablja zgoščeno tabelo.
Izvedba HashMap izvaja Preslikava, kloniranje in serializacija vmesnik es. HashSet izvaja Set, Cloneable, Serializable, Iterable in Zbirka vmesniki.
Trgovine V HashMap shranimo a par ključ-vrednost . Ohranja preslikavo ključa in vrednosti. V HashSet shranjujemo predmetov .
Podvojene vrednosti Ne dovoljuje podvojeni ključi , ampak podvojene vrednosti so dovoljeno . Ne dovoljuje podvojene vrednosti .
Ničelne vrednosti Lahko vsebuje a enojni ničelni ključ in več ničelnih vrednosti . Lahko vsebuje eno samo ničelno vrednost .
Način vstavljanja HashMap uporablja daj() metodo za dodajanje elementov v HashMap. HashSet uporablja dodaj() metoda za dodajanje elementov v HashSet.
Izvedba HashMap je hitreje/ kot HashSet, ker so vrednosti povezane z edinstvenim ključem. HashSet je počasnejši kot HashMap, ker se objekt član uporablja za izračun vrednosti hashcode, ki je lahko enaka za dva predmeta.
Število predmetov Samo eno predmet je ustvarjen med operacijo dodajanja. obstajajo dva predmetov, nastalih med danim obratovanjem, enega za ključ in enega za vrednost .
Mehanizem za shranjevanje HashMap interno uporablja zgoščevanje za shranjevanje predmetov. HashSet interno uporablja a HashMap predmet za shranjevanje predmetov.
Uporabe Vedno raje, ko ne vzdržujemo edinstvenost . Uporablja se, ko moramo vzdrževati edinstvenost podatkov.
Primer {a->4, b->9, c->5} Kje a, b, c so ključi in 4, 9, 5 so vrednote povezana s ključem. {6, 43, 2, 90, 4} Označuje množico.

Razumejmo razlike skozi programe.

abeceda v številkah

Primer HashMap

V naslednjem primeru, ko dodamo podvojeni element z istim ključem in drugačno vrednostjo, se prejšnja vrednost ključa nadomesti z novo vrednostjo.

Ko dodamo podvojeni element z istim ključem in isto vrednostjo, se par ključ-vrednost ne shrani drugič.

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

Izhod:

Razlika med razredoma HashSet in HashMap v Javi

Primer HashSet

V naslednjem primeru lahko vidimo, da se podvojene vrednosti ne shranijo v HashSet in da se ničelna vrednost shrani samo enkrat.

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

Izhod:

Razlika med razredoma HashSet in HashMap v Javi