logo

Rozdíl mezi třídou HashSet a HashMap v Javě

The HashMap a HashSet v Javě jsou nejoblíbenější třídy Collection. Oba se používají pro datovou strukturu. Následující tabulka popisuje rozdíl mezi HashMap a HashSet:

Základ HashMap HashSet
Definice Java HashMap je implementace rozhraní Map založená na hashovací tabulce. HashSet je sada. Vytvoří kolekci, která používá k ukládání hash tabulku.
Implementace implementuje HashMap Mapovat, klonovat a serializovat rozhraní es. HashSet implementuje Set, klonovatelný, serializovatelný, iterovatelný a Sbírka rozhraní.
Obchody V HashMap ukládáme a pár klíč-hodnota . Udržuje mapování klíče a hodnoty. V HashSet ukládáme objektů .
Duplicitní hodnoty to nedovoluje duplicitní klíče , ale duplicitní hodnoty jsou povoleno . to nedovoluje duplicitní hodnoty .
Nulové hodnoty Může obsahovat a jediný nulový klíč a více hodnot null . Může obsahovat jediná nulová hodnota .
Způsob vkládání HashMap používá dát() metoda pro přidání prvků do HashMap. HashSet používá přidat() metoda pro přidání prvků do HashSet.
Výkon HashMap je rychlejší/ než HashSet, protože hodnoty jsou spojeny s jedinečným klíčem. HashSet je pomalejší než HashMap, protože členský objekt se používá pro výpočet hodnoty hashcode, která může být stejná pro dva objekty.
Počet objektů Pouze jeden objekt je vytvořen během operace přidání. Existují dva objekty vytvořené během operace put, jeden pro klíč a jeden pro hodnota .
Skladovací mechanismus HashMap interně používá hašování k ukládání předmětů. HashSet interně používá a HashMap objekt k uložení předmětů.
Použití Vždy preferujte, když neudržujeme jedinečnost . Používá se, když potřebujeme udržovat jedinečnost dat.
Příklad {a->4, b->9, c->5}{101} Kde a, b, c jsou klíče a 4, 9, 5 jsou hodnoty spojené s klíčem. {6, 43, 2, 90, 4} Označuje sadu.

Pojďme pochopit rozdíly prostřednictvím programů.

Příklad HashMap

Když v následujícím příkladu přidáme duplicitní prvek se stejným klíčem a jinou hodnotou, předchozí hodnota klíče je nahrazena novou hodnotou.

Když přidáme duplicitní prvek se stejným klíčem a stejnou hodnotou, pak se pár klíč-hodnota podruhé 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ýstup:

Rozdíl mezi třídou HashSet a HashMap v Javě

Příklad HashSet

V následujícím příkladu vidíme, že duplicitní hodnoty se neukládají do HashSet a nulová hodnota se ukládá pouze jednou.

 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ýstup:

Rozdíl mezi třídou HashSet a HashMap v Javě