logo

Differenza tra la classe HashSet e HashMap in Java

IL HashMap E HashSet in Java sono le classi Collection più popolari. Entrambi sono utilizzati per la struttura dei dati. La tabella seguente descrive la differenza tra HashMap e HashSet:

Base HashMap HashSet
Definizione Java HashMap è un'implementazione basata su tabella hash dell'interfaccia Map. HashSet è un insieme. Crea una raccolta che utilizza una tabella hash per l'archiviazione.
Implementazione Implementa HashMap Mappa, clonabile e serializzabile interfaccia es. HashSet implementa Impostabile, clonabile, serializzabile, iterabile E Collezione interfacce.
I negozi In HashMap memorizziamo a coppia chiave-valore . Mantiene la mappatura di chiave e valore. In HashSet, memorizziamo oggetti .
Valori duplicati Non lo consente chiavi duplicate , Ma valori duplicati Sono consentito . Non lo consente valori duplicati .
Valori nulli Può contenere a singola chiave nulla E più valori nulli . Può contenere un unico valore nullo .
Metodo di inserimento HashMap utilizza il file Mettere() metodo per aggiungere gli elementi nell'HashMap. HashSet utilizza il file aggiungere() metodo per aggiungere elementi nell'HashSet.
Prestazione HashMap lo è Più veloce/ rispetto a HashSet perché i valori sono associati a una chiave univoca. HashSet lo è Più lentamente rispetto a HashMap perché l'oggetto membro viene utilizzato per calcolare il valore hashcode, che può essere lo stesso per due oggetti.
Il numero di oggetti Soltanto uno l'oggetto viene creato durante l'operazione di aggiunta. Ci sono due oggetti creati durante l'operazione put, uno per chiave e uno per valore .
Meccanismo di memorizzazione HashMap utilizza internamente hashing per riporre oggetti. HashSet utilizza internamente a HashMap oggetto per riporre oggetti.
Usi Preferiamo sempre quando non manteniamo il unicità . Viene utilizzato quando abbiamo bisogno di mantenere il unicità di dati.
Esempio {a->4, b->9, c->5} Dove a, b, c Sono chiavi E 4, 9, 5 Sono valori associato alla chiave. {6, 43, 2, 90, 4} Denota un insieme.

Capiamo le differenze attraverso i programmi.

Esempio di HashMap

Nell'esempio seguente, quando aggiungiamo un elemento duplicato con la stessa chiave e un valore diverso, il valore precedente della chiave viene sostituito dal nuovo valore.

Quando aggiungiamo un elemento duplicato con la stessa chiave e lo stesso valore, la coppia chiave-valore non viene memorizzata una seconda volta.

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

Produzione:

Differenza tra la classe HashSet e HashMap in Java

Esempio di HashSet

Nell'esempio seguente, possiamo vedere che i valori duplicati non vengono archiviati nell'HashSet e il valore null viene archiviato solo una volta.

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

Produzione:

Differenza tra la classe HashSet e HashMap in Java