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