Differenza tra hashtable e hashmap in Java
-
Hashtable
vsHashMap
-
Crea
Hashtable
in Java -
Crea
HashMap
in Java -
Memorizza null in
HashMap
in Java -
Memorizza null in
Hashtable
in Java
Questo tutorial introduce le differenze tra Hashtable
e HashMap
in Java elenca anche alcuni codici di esempio per comprendere l’argomento.
Hashtable è una classe nel framework delle raccolte Java utilizzata per memorizzare i dati in coppie chiave-valore. È una classe legacy in Java e lavora sul concetto di hash per memorizzare gli elementi. Nelle ultime versioni di Java, Hashtable non è consigliato. Dovremmo piuttosto usare HashMap che è più avanzato di Hashtable. Vedi la tabella seguente che riassume le differenze chiave tra Hashtable e HashMap in Java.
Hashtable
vs HashMap
Hashtable |
HashMap |
---|---|
Sincronizzato | Non sincronizzato |
Null non consentito | Consenti null |
Classe legacy | Non eredità |
È lento | È veloce |
Nella tabella di confronto sopra, possiamo vedere chiaramente le principali differenze tra Hashtable e HashMap. Vediamo ora alcuni esempi.
Poiché Hashtable
è sincronizzato internamente, questo rende Hashtable
leggermente più lento di HashMap
.
Crea Hashtable
in Java
In questo esempio, stiamo creando Hashtable. È il modo più semplice per creare Hashtable e dobbiamo solo importare Hashtable nel nostro codice. Questa classe si trova nel pacchetto java.util
. Vedi l’esempio sotto.
import java.util.Hashtable;
public class SimpleTesting {
public static void main(String[] args) {
Hashtable<Integer, String> hashTable = new Hashtable<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
System.out.println(hashTable);
}
}
Produzione:
{3=Three, 2=Two, 1=One}
Crea HashMap
in Java
In questo esempio, stiamo creando HashMap
in Java. È il modo più semplice per creare HashMap e dobbiamo solo importare HashMap nel nostro codice. Questa classe si trova nel pacchetto java.util
. Vedi l’esempio sotto.
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<Integer, String> hashTable = new HashMap<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
System.out.println(hashTable);
}
}
Produzione:
{3=Three, 2=Two, 1=One}
Memorizza null in HashMap
in Java
La HashMap
consente di memorizzare null, il che significa che possiamo memorizzare una chiave null e più valori null in HashMap
. Questa classe è utile quando hai null nelle tue raccolte. Vedi l’esempio sotto.
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<Integer, String> hashTable = new HashMap<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
hashTable.put(null, "Four");
hashTable.put(null, null);
System.out.println(hashTable);
}
}
Produzione:
{null=null, 1=One, 2=Two, 3=Three}
Memorizza null in Hashtable
in Java
La Hashtable
non consente la memorizzazione di null, il che significa che non possiamo memorizzare un null in Hashtable
. Questa classe non è utile quando hai null nelle tue raccolte. Vedi l’esempio sotto.
Genera un’eccezione NullPointerException
se viene memorizzato un valore nullo.
import java.util.Hashtable;
public class SimpleTesting {
public static void main(String[] args) {
Hashtable<Integer, String> hashTable = new Hashtable<>();
hashTable.put(1, "One");
hashTable.put(2, "Two");
hashTable.put(3, "Three");
hashTable.put(null, "Four");
hashTable.put(null, null);
System.out.println(hashTable);
}
}
Produzione:
Exception in thread "main" java.lang.NullPointerException