Differenza chiave: in informatica, un hashTable o hashMap si riferisce a una struttura dati che collega le chiavi (nomi) con valori (attributi). In Java, ci sono alcune importanti differenze tra i due: HashTable è sincronizzato e HashMap non è sincronizzato. Un HashTable non consente chiavi Null. Tuttavia, una HashMap consente una singola chiave nulla e un numero qualsiasi di valori nulli.
HashMap e hashTable sono strutture di dati che fanno parte della raccolta Java. Utilizzano coppie chiave-valore per archiviare oggetti. Entrambi condividono alcune somiglianze, come ad esempio implementano l'interfaccia java.util.Map e lavorano entrambi sul principio dell'hashing. Tuttavia, quando ci riferiamo ad essi nel contesto del linguaggio di programmazione Java, ci sono numerose differenze tra i due.
Un hashTable viene utilizzato per archiviare e recuperare un valore utilizzando una chiave. A tale scopo, la chiave deve essere unica. La tabella utilizzata per memorizzare le coppie di chiavi e valori è nota come tabella hash. Una tabella hash è formata utilizzando un algoritmo che blocca le chiavi. Questa funzione di hash viene utilizzata per assegnare numeri ai dati di input e quindi i dati vengono memorizzati come indice di array che corrisponde al numero calcolato o valutato.
Confronto tra HashMap e HashTable:
HashMap | HashTable | |
Sincronizzazione | Non è sincronizzato | È sincronizzato (thread-safe) |
Valori nulli | Permette valori nulli come chiave e valore | Non consente null |
Introduzione in Java | Versione Java 1.2 | Prima versione del kit di sviluppo java |
Prestazione | Comparativamente migliore | Comparativamente povero |
estende | Estende la classe AbstractMap | Estende la classe Dictionary che è piuttosto vecchia |
Iterazione delle chiavi | Iterator è usato per iterare le chiavi | L'interfaccia di enumerazione viene utilizzata per l'iterazione delle chiavi |
applicazioni | Migliore per le applicazioni senza thread | Generalmente, sicuro per applicazioni multithread |
serializzazione | Non serializzato | Serialized |
Alternativa | Si può usare hashMap concomitante per l'ambiente multi-thread | Nessuna alternativa |