Contents
HashMap bezeichnet als HashMap<Key, Value> oder HashMap<K, V>. Es ist die erweiterte Version von HashTable und wurde als neue Klasse in JDK 1.2 eingeführt. Es ist ein Teil von Java Collections. Es stellt die grundlegende Implementierung der Map-Schnittstelle von Java bereit. Es speichert die Daten in (Schlüssel, Wert)-Paaren und Sie können auf sie über einen Index eines anderen Typs (zB eine ganze Zahl) zugreifen. Ein Objekt wird als Schlüssel (Index) für ein anderes Objekt (Wert) verwendet.
Eine HashMap verwendet eine Technik, die als ”Hashing” bezeichnet wird. Beim Hashing wird ein längerer String in einen kürzeren String umgewandelt, indem ein Algorithmus oder eine „Hash-Funktion“ angewendet wird. Eine Zeichenfolge wird in eine kürzere Zeichenfolge umgewandelt, da dies bei der Suche schneller ist. Es wird für eine effiziente Indexierung verwendet.
HashMap ähnelt der HashTable, ist jedoch nicht synchronisiert. Es erlaubt auch, die Nullschlüssel zu speichern, aber es sollte nur ein Nullschlüsselobjekt geben und es kann eine beliebige Anzahl von Nullwerten geben. Dies gibt keine Garantie hinsichtlich der Ordnung der Karte. Um diese Klasse und ihre Methoden zu verwenden, müssen Sie das Paket java.util.HashMap oder seine Superklasse importieren.
Eine HashTable ist eine Datenstruktur, die Daten assoziativ speichert. In einer HashTable werden Daten in einem Array-Format gespeichert, in dem jeder Wert seinen eigenen eindeutigen Indexwert hat. Es verwendet eine Hash-Funktion, um einen Index in ein Array zu berechnen, in dem ein Element eingefügt oder gesucht wird.
In HashTable sind Einfüge- und Suchvorgänge unabhängig von der Größe der Daten sehr schnell. HashTable verwendet ein Array als Speichermedium und verwendet HashTable verwendet ein Array als Speichermedium und verwendet eine Hash-Technik, um zu generieren und zu indizieren, wo ein Element eingefügt werden soll oder von wo aus es zu finden ist.
In Java wird die HashTable durch die Klasse ‘HashTable’ implementiert. Diese Klasse implementiert die Map-Schnittstelle und erbt die Dictionary-Klasse.
VERGLEICHSGRUNDLAGE | HASHMAP | HASH-TABELLE |
Beschreibung | HashMap ist die erweiterte Version von HashTable und wurde als neue Klasse in JDK 1.2 eingeführt. Es ist ein Teil von Java Collections. | HashTable ist eine Legacy-Klasse und wurde vor HashMap eingeführt, sie war nicht Teil der ursprünglichen Java-Sammlungen. |
Funktion | Es implementiert Map und Serializable-Schnittstelle. | Es implementiert den Sammlungsrahmen. |
Synchronisation | Die Synchronisierung ist in HashMap nicht implementiert und ist nicht Thread-sicher. Daher kann sie ohne ordnungsgemäße Synchronisierung nicht von vielen Threads gemeinsam genutzt werden. | Die Synchronisierung ist in HashMap nicht implementiert und ist nicht Thread-sicher. Daher kann sie ohne ordnungsgemäße Synchronisierung nicht von vielen Threads gemeinsam genutzt werden. |
Nachlass | HashMap erbt die Klasse AbstractMap. | HashTable erbt die Dictionary-Klasse. |
Durchquerung von Werten | HashMap stellt Iterator für seine Iteration bereit, um die darin gespeicherten Werte zu durchlaufen. | Iterator HashTable stellt auch Enumerator bereit, um die darin gespeicherten Werte zu durchlaufen. |
Interne Implementierung | Die interne Implementierung beider Klassen ist bis zu einem gewissen Grad gleich. Im Fall von HashMap sind jedoch ein Nullschlüssel und mehrere Nullwerte zulässig. | HashTable ist intern so implementiert, dass es keinen NULL-Schlüssel oder NULL-Wert zulässt. |
Geschwindigkeit | Aufgrund der fehlenden Synchronisierung ist HashMap im Vergleich zu HashTable schneller und wird bevorzugt, wenn keine Synchronisierung erforderlich ist. | Die Synchronisation in HashTable macht es im Vergleich zu HashMap langsamer, macht aber auch das Schreiben von zusätzlichem Code zum Erhalten der Synchronisation überflüssig. |
Begrenzende Suchzeit | HashMap verwendet einen ausgeglichenen Baum als Kollisionsauflösungsstrategie, der eine begrenzende Suchzeit von O(log n) hat. | HashTable verwendet separate Verkettung (mit verknüpften Listen) als Kollisionsbehandlungsstrategie, die die Suchzeit von O(n) begrenzt. |
Ausnahme bei gleichzeitiger Änderung | Iterator ist fehlerschnell und löst eine gleichzeitige Änderungsausnahme aus, wenn ein anderer Thread versucht, die Map zu ändern. | Der Enumerator ist nicht ausfallsicher. Wenn die HashTable während des Traversierens geändert wird, wird kein Fehler ausgegeben. |
Anzeigenauftrag | HashMap behält die Einfügereihenfolge in Java nicht bei. | HashTable behält die Einfügereihenfolge in Java nicht bei. |
Standardkapazität | Die Standardkapazität einer HashTable in der HashMap-Klasse beträgt 16. | Die Standardkapazität von HashTable ist 11. |
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…