Il linguaggio di programmazione Java è dotato di due tipi di contenitori di dati distinti ma simili , la HashMap e HashSet . Entrambi utilizzano una tabella hash per memorizzare dati . Una tabella hash è una tabella di valori che utilizza una funzione di hash per determinare dove cercare e memorizzare i dati . Questo consente un rapido accesso ai dati perché un valore non deve essere cercato . Invece , la funzione hash può fornire la posizione esatta del valore . Nonostante sia utilizzando le tabelle hash , HashMap e HashSet sono molto diversi gli uni dagli altri . Mappe
Maps memorizzano i dati in relazioni chiave-valore. Una chiave è detto di essere mappato a un valore . Un dizionario è un buon esempio di un contenitore di dati mappa . La chiave è la parola che si sta cercando e il valore è la definizione . Tutti i dati in una mappa devono essere conservati mediante una chiave unica , ma ci possono essere molteplici , valori identici .
Imposta
Un set è un insieme di dati senza duplicare elementi . Ad esempio, la sequenza di cifre da 0 a 9 è un set , ma la sequenza 0 , 1 , 1 , 2 , 3 non è quanto la cifra 1 viene ripetuto . Un insieme non dispone di un rapporto di valori-chiave come una mappa . Si tratta semplicemente di un insieme di valori non duplicati .
Prestazioni
HashMap offre prestazioni costante di tempo per il "get" e "put " metodi , che vengono utilizzati per popolare la struttura dei dati . Rendimento costante di tempo significa che non importa quanto sia grande la struttura dei dati diventa , queste operazioni saranno sempre prendere la stessa quantità di tempo per eseguire . L' HashSet offre prestazioni costante di tempo per il " aggiungere ", " rimuovere ", " contiene " e metodi di "dimensione" .
Opzionale Caratteristiche
HashMap fornisce tutte delle operazioni della classe Java Map e l' HashSet fornisce tutte le operazioni della classe Java Set . Questo perché sia HashMap e HashSet sono implementazioni della Java Map e Set classi , rispettivamente .