Differenza tra hashtable e hashmap in Java
-
HashtablevsHashMap -
Crea
Hashtablein Java -
Crea
HashMapin Java -
Memorizza null in
HashMapin Java -
Memorizza null in
Hashtablein 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