logo

Skirtumas tarp HashSet ir HashMap klasių Java

The HashMap ir HashSet Java yra populiariausios kolekcijos klasės. Abu naudojami duomenų struktūrai. Šioje lentelėje aprašomas skirtumas tarp HashMap ir HashSet:

Pagrindas HashMap HashSet
Apibrėžimas Java HashMap yra maišos lentelės pagrindu sukurta žemėlapio sąsaja. HashSet yra rinkinys. Sukuriama kolekcija, kurioje saugojimui naudojama maišos lentelė.
Įgyvendinimas HashMap padargai Žemėlapis, klonuojamas ir serializuojamas sąsaja es. HashSet padargai Nustatyti, klonuoti, serializuoti, kartoti ir Kolekcija sąsajos.
Parduotuvės HashMap saugome a rakto-reikšmių pora . Jis palaiko rakto ir vertės atvaizdavimą. „HashSet“ saugome objektų .
Pasikartojančios vertės Tai neleidžia pasikartojantys raktai , bet pasikartojančios reikšmės yra leidžiama . Tai neleidžia pasikartojančios reikšmės .
Nulinės reikšmės Jame gali būti a vienas nulinis raktas ir kelios nulinės reikšmės . Jame gali būti viena nulinė reikšmė .
Įdėjimo būdas HashMap naudoja įdėti () būdas pridėti elementus į HashMap. HashSet naudoja papildyti() būdas pridėti elementus į HashSet.
Spektaklis HashMap yra greičiau/ nei HashSet, nes reikšmės yra susietos su unikaliu raktu. HashSet yra lėčiau nei HashMap, nes nario objektas naudojamas maišos kodo vertei apskaičiuoti, kuri gali būti vienoda dviem objektams.
Objektų skaičius Tik vienas objektas sukuriamas pridėjimo operacijos metu. Yra du objektai, sukurti per put operaciją, vienas skirtas Raktas ir vienas už vertė .
Saugojimo mechanizmas „HashMap“ naudojamas viduje maišos daiktams saugoti. „HashSet“ viduje naudoja a HashMap objektas daiktams saugoti.
Naudoja Visada teikia pirmenybę, kai neprižiūrime unikalumas . Jis naudojamas, kai reikia prižiūrėti unikalumas duomenų.
Pavyzdys {a->4, b->9, c->5} Kur a, b, c yra raktai ir 4, 9, 5 yra vertybes susietas su raktu. {6, 43, 2, 90, 4} Tai reiškia rinkinį.

Supraskime skirtumus per programas.

HashMap pavyzdys

Šiame pavyzdyje, kai pridedame pasikartojantį elementą su tuo pačiu raktu ir skirtinga reikšme, ankstesnė rakto reikšmė pakeičiama nauja reikšme.

Kai pridedame pasikartojantį elementą su tuo pačiu raktu ir ta pačia verte, rakto ir reikšmės pora antrą kartą neišsaugoma.

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

Išvestis:

Skirtumas tarp „HashSet“ ir „HashMap“ klasės „Java“.

HashSet pavyzdys

Toliau pateiktame pavyzdyje matome, kad pasikartojančios reikšmės nesaugomos HashSet, o nulinė reikšmė saugoma tik vieną kartą.

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

Išvestis:

Skirtumas tarp „HashSet“ ir „HashMap“ klasės „Java“.