logo

Rozdiel medzi triedou HashSet a HashMap v jazyku Java

The HashMap a HashSet v jazyku Java sú najobľúbenejšie triedy Collection. Obidve sa používajú na dátovú štruktúru. Nasledujúca tabuľka popisuje rozdiel medzi HashMap a HashSet:

Základ HashMap HashSet
Definícia Java HashMap je implementácia rozhrania mapy založená na hašovacej tabuľke. HashSet je sada. Vytvára kolekciu, ktorá používa na uloženie hašovaciu tabuľku.
Implementácia implementuje HashMap Mapové, klonovateľné a serializovateľné rozhranie es. Implementuje HashSet Nastaviť, klonovať, serializovať, opakovať a Zbierka rozhrania.
Obchody V HashMap ukladáme a pár kľúč – hodnota . Udržuje mapovanie kľúča a hodnoty. V HashSet ukladáme predmety .
Duplicitné hodnoty To nepripúšťa duplicitné kľúče , ale duplicitné hodnotypovolený . To nepripúšťa duplicitné hodnoty .
Nulové hodnoty Môže obsahovať a jediný nulový kľúč a viacero nulových hodnôt . Môže obsahovať jednu nulovú hodnotu .
Spôsob vkladania HashMap používa dať () metóda na pridanie prvkov do HashMap. HashSet používa pridať () metóda na pridanie prvkov do HashSet.
Výkon HashMap je rýchlejšie/ než HashSet, pretože hodnoty sú spojené s jedinečným kľúčom. HashSet je pomalšie než HashMap, pretože členský objekt sa používa na výpočet hodnoty hashcode, ktorá môže byť rovnaká pre dva objekty.
Počet objektov Iba jeden objekt sa vytvorí počas operácie pridávania. Existujú dva objekty vytvorené počas operácie put, jeden pre kľúč a jeden pre hodnotu .
Skladovací mechanizmus HashMap interne používa hašovanie na ukladanie predmetov. HashSet interne používa a HashMap objekt na uloženie predmetov.
Využitie Vždy radšej, keď neudržiavame jedinečnosť . Používa sa, keď potrebujeme udržiavať jedinečnosť údajov.
Príklad {a->4, b->9, c->5}{101} Kde a, b, ckľúče a 4, 9, 5hodnoty spojené s kľúčom. {6, 43, 2, 90, 4} Označuje súbor.

Poďme pochopiť rozdiely prostredníctvom programov.

Príklad HashMap

Keď v nasledujúcom príklade pridáme duplicitný prvok s rovnakým kľúčom a inou hodnotou, predchádzajúca hodnota kľúča sa nahradí novou hodnotou.

Keď pridáme duplicitný prvok s rovnakým kľúčom a rovnakou hodnotou, pár kľúč – hodnota sa druhýkrát neuloží.

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

Výkon:

Rozdiel medzi triedou HashSet a HashMap v jazyku Java

Príklad HashSet

V nasledujúcom príklade vidíme, že duplicitné hodnoty sa neukladajú do HashSet a nulová hodnota sa ukladá iba raz.

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

Výkon:

Rozdiel medzi triedou HashSet a HashMap v jazyku Java