Schlüsseldifferenz: In der Informatik bezieht sich eine hashTable oder eine hashMap auf eine Datenstruktur, die Schlüssel (Namen) mit Werten (Attributen) verknüpft. In Java gibt es einige wichtige Unterschiede zwischen den beiden: HashTable wird synchronisiert und HashMap ist nicht synchronisiert. Eine HashTable erlaubt keine NULL-Schlüssel. Eine HashMap erlaubt jedoch einen einzelnen Nullschlüssel und eine beliebige Anzahl von Nullwerten.
HashMap und hashTable sind Datenstrukturen, die Teil der Java-Sammlung sind. Sie verwenden Schlüssel-Wert-Paare, um Objekte zu speichern. Beide haben einige Gemeinsamkeiten, z. B. implementieren die Schnittstelle java.util.Map, und beide arbeiten nach dem Hashing-Prinzip. Wenn wir uns jedoch auf die Java-Programmiersprache beziehen, gibt es zahlreiche Unterschiede zwischen den beiden.
Eine hashTable wird verwendet, um einen Wert mithilfe eines Schlüssels zu speichern und abzurufen. Zu diesem Zweck muss der Schlüssel eindeutig sein. Die Tabelle, in der die Schlüssel- und Wertpaare gespeichert werden, wird als Hashtabelle bezeichnet. Eine Hash-Tabelle wird gebildet, indem ein Algorithmus verwendet wird, der die Schlüssel hasht. Diese Hash-Funktion wird verwendet, um den Eingabedaten Zahlen zuzuweisen. Anschließend werden die Daten als Array-Index gespeichert, der der berechneten oder ausgewerteten Zahl entspricht.
Vergleich zwischen HashMap und HashTable:
HashMap | Hash-tabelle | |
Synchronisation | Es ist nicht synchronisiert | Es ist synchronisiert (threadsicher) |
Nullwerte | Es erlaubt Nullwerte als Schlüssel und Wert | Es erlaubt keine Nullen |
Einführung in Java | Java Version 1.2 | Erste Version des Java Development Kits |
Performance | Vergleichsweise besser | Vergleichsweise schlecht |
Erweitert | Es erweitert die Klasse AbstractMap | Es erweitert die Wörterbuchklasse, die ziemlich alt ist |
Schlüsselwiederholung | Iterator wird zum Durchlaufen der Tasten verwendet | Die Aufzählungsschnittstelle wird zum Durchlaufen von Schlüsseln verwendet |
Anwendungen | Besser für Anwendungen ohne Threading | Im Allgemeinen sicher für Multithread-Anwendungen |
Serialisierung | Nicht serialisiert | Serialisiert |
Alternative | Man kann concurrent hashMap für eine Umgebung mit mehreren Threads verwenden | Keine solche Alternative |