Unterschied zwischen Hashtable und Hashmap in Java
-
Hashtable
vsHashMap
-
Erstellen von
Hashtable
in Java -
HashMap
in Java erstellen -
Null in
HashMap
in Java speichern -
Null in
Hashtable
in Java speichern
In diesem Tutorial werden die Unterschiede zwischen Hashtable
und HashMap
in Java vorgestellt. Außerdem werden einige Beispielcodes aufgeführt, um das Thema zu verstehen.
Hashtable ist eine Klasse im Java-Sammlungsframework, mit der Daten in Schlüssel-Wert-Paaren gespeichert werden. Es ist eine Legacy-Klasse in Java und arbeitet mit dem Hash-Konzept zum Speichern von Elementen. In den neuesten Java-Versionen wird Hashtable nicht empfohlen. Wir sollten lieber HashMap verwenden, das weiter fortgeschritten ist als Hashtable. In der folgenden Tabelle sind die wichtigsten Unterschiede zwischen Hashtable und HashMap in Java zusammengefasst.
Hashtable
vs HashMap
Hashtable |
HashMap |
---|---|
Synchronisiert | Nicht synchronisiert |
Null nicht erlaubt | Erlaube null |
Legacy-Klasse | Kein Vermächtnis |
Es ist langsam | Es ist schnell |
In der obigen Vergleichstabelle können wir die Hauptunterschiede zwischen Hashtable und HashMap deutlich erkennen. Lassen Sie uns nun einige Beispiele sehen.
Da Hashtable
intern synchronisiert ist, ist Hashtable
etwas langsamer als die HashMap
.
Erstellen von Hashtable
in Java
In diesem Beispiel erstellen wir eine Hashtabelle. Es ist der einfachste Weg, Hashtable zu erstellen, und wir müssen nur Hashtable in unseren Code importieren. Diese Klasse befindet sich im Paket java.util
. Siehe das folgende Beispiel.
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);
}
}
Ausgabe:
{3=Three, 2=Two, 1=One}
HashMap
in Java erstellen
In diesem Beispiel erstellen wir HashMap
in Java. Es ist der einfachste Weg, HashMap zu erstellen, und wir müssen nur HashMap in unseren Code importieren. Diese Klasse befindet sich im Paket java.util
. Siehe das folgende Beispiel.
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);
}
}
Ausgabe:
{3=Three, 2=Two, 1=One}
Null in HashMap
in Java speichern
Mit der HashMap
kann Null gespeichert werden, dh wir können einen Nullschlüssel und mehrere Nullwerte in der HashMap
speichern. Diese Klasse ist nützlich, wenn Ihre Sammlungen null enthalten. Siehe das folgende Beispiel.
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);
}
}
Ausgabe:
{null=null, 1=One, 2=Two, 3=Three}
Null in Hashtable
in Java speichern
Die Hashtable
erlaubt nicht das Speichern von Null, was bedeutet, dass wir keine Null in der Hashtable
speichern können. Diese Klasse ist nicht nützlich, wenn Ihre Sammlungen null enthalten. Siehe das folgende Beispiel.
Es wird eine Ausnahme NullPointerException
ausgelöst, wenn ein Nullwert gespeichert wird.
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);
}
}
Ausgabe:
Exception in thread "main" java.lang.NullPointerException