HashMap und Hashtable werden beide verwendet, um Daten in Schlüssel- und Wertform zu speichern. Beide verwenden eine Hash-Technik, um eindeutige Schlüssel zu speichern.
Aber es gibt viele Unterschiede zwischen HashMap- und Hashtable-Klassen, die unten angegeben sind.
HashMap | Hash-tabelle |
---|---|
1) HashMap ist nicht synchronisiert . Es ist nicht Thread-sicher und kann ohne den richtigen Synchronisationscode nicht von vielen Threads gemeinsam genutzt werden. | Hashtable ist synchronisiert . Es ist Thread-sicher und kann mit vielen Threads geteilt werden. |
2) HashMap erlaubt einen Nullschlüssel und mehrere Nullwerte . | Hashtable erlaubt keine Nullschlüssel oder -werte . |
3) HashMap ist eine neue Klasse, die in JDK 1.2 eingeführt wurde . | Hashtable ist eine Legacy-Klasse . |
4) HashMap ist schnell . | Hashtable ist langsam . |
5) Wir können die HashMap als synchronisiert machen, indem wir diesen Code aufrufen: Map m = Collections.synchronizedMap(hashMap); | Hashtable ist intern synchronisiert und kann nicht desynchronisiert werden. |
6) HashMap wird von Iterator durchlaufen . | Hashtable wird von Enumerator und Iterator durchlaufen . |
7) Der Iterator in HashMap ist ausfallsicher . | Der Enumerator in Hashtable ist nicht ausfallsicher . |
8) HashMap erbt die Klasse AbstractMap . | Hashtable erbt die Dictionary -Klasse. |