logo

Unterschied zwischen der HashSet- und der HashMap-Klasse in Java

Der HashMap Und HashSet in Java sind die beliebtesten Collection-Klassen. Beide werden für die Datenstruktur verwendet. Die folgende Tabelle beschreibt den Unterschied zwischen HashMap und HashSet:

Basis HashMap HashSet
Definition Java HashMap ist eine Hash-Tabellen-basierte Implementierung der Map-Schnittstelle. HashSet ist ein Set. Es erstellt eine Sammlung, die eine Hash-Tabelle zur Speicherung verwendet.
Implementierung HashMap implementiert Zuordnen, klonbar und serialisierbar Schnittstelle es. HashSet implementiert Festgelegt, klonbar, serialisierbar, iterierbar Und Sammlung Schnittstellen.
Shops In HashMap speichern wir a Schlüssel-Wert-Paar . Es verwaltet die Zuordnung von Schlüssel und Wert. In HashSet speichern wir Objekte .
Doppelte Werte Es erlaubt nicht Doppelte Schlüssel , Aber doppelte Werte Sind erlaubt . Es erlaubt nicht doppelte Werte .
Nullwerte Es kann enthalten: einzelner Nullschlüssel Und mehrere Nullwerte . Es kann enthalten ein einzelner Nullwert .
Einfügungsmethode HashMap verwendet die setzen() Methode zum Hinzufügen der Elemente in der HashMap. HashSet verwendet die hinzufügen() Methode zum Hinzufügen von Elementen im HashSet.
Leistung HashMap ist Schneller/ als HashSet, da Werte einem eindeutigen Schlüssel zugeordnet sind. HashSet ist Langsamer als HashMap, da das Mitgliedsobjekt zur Berechnung des Hashcode-Werts verwendet wird, der für zwei Objekte gleich sein kann.
Die Anzahl der Objekte Nur eins Das Objekt wird während des Add-Vorgangs erstellt. Es gibt zwei Objekte, die während der Put-Operation erstellt wurden, eines für Schlüssel und einer für Wert .
Speichermechanismus HashMap verwendet intern Hashing Gegenstände aufzubewahren. HashSet verwendet intern a HashMap Objekt zum Speichern von Objekten.
Verwendet Immer lieber, wenn wir das nicht pflegen Einzigartigkeit . Es wird verwendet, wenn wir das aufrechterhalten müssen Einzigartigkeit von Dateien.
Beispiel {a->4, b->9, c->5} Wo a, b, c Sind Schlüssel Und 4, 9, 5 Sind Werte mit Schlüssel verbunden. {6, 43, 2, 90, 4} Es bezeichnet eine Menge.

Lassen Sie uns die Unterschiede anhand von Programmen verstehen.

Beispiel für HashMap

Wenn wir im folgenden Beispiel ein doppeltes Element mit demselben Schlüssel und einem anderen Wert hinzufügen, wird der vorherige Wert des Schlüssels durch den neuen Wert ersetzt.

faktorielles Java

Wenn wir ein doppeltes Element mit demselben Schlüssel und demselben Wert hinzufügen, wird das Schlüssel-Wert-Paar nicht ein zweites Mal gespeichert.

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

Ausgabe:

Unterschied zwischen der HashSet- und der HashMap-Klasse in Java

Beispiel für HashSet

Im folgenden Beispiel können wir sehen, dass die doppelten Werte nicht im HashSet gespeichert werden und der Nullwert nur einmal gespeichert wird.

einfaches Java-Programm
 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); } } 

Ausgabe:

Unterschied zwischen der HashSet- und der HashMap-Klasse in Java