Was ist der Unterschied zwischen HashMap und LinkedHashMap?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen HashMap und LinkedHashMap ist das HashMap behält die Reihenfolge der Dateneinfügung nicht bei, während LinkedHashMap die Reihenfolge der Dateneinfügung beibehält.

Die Karte ist eine häufig verwendete Datenstruktur. Zwei Implementierungen von Map in der Java Standard Edition sind HashMap und LikedHashMap. HashMap ist als Hash-Tabelle implementiert. Es hat keine Sortierung nach Schlüsseln oder Werten. Andererseits behält LinkedHashMap die Reihenfolge der Dateneinfügung bei.

Hashmap, Hash-Tabelle, LinkedHashMap, Karte

Was ist HashMap?

HashMap ist eine Klasse, die die Map-Schnittstelle mithilfe einer Hash-Tabelle implementiert. Es erweitert die AbstractMap und die AbstractMap implementiert die Map-Schnittstelle. Eine HashMap enthält Schlüssel-Wert-Paare. Es kann aus eindeutigen Schlüsseln bestehen. HashMap wird nicht synchronisiert und behält die eingefügte Reihenfolge der Daten nicht bei. Ein Beispielprogramm mit HashMap sieht wie folgt aus.

Abbildung 1: Programm mit HashMap

Im obigen Programm ist der „Mitarbeiter“ ein Objekt von HashMap. Es kann mehrere Elemente mit Integer-Typ-Schlüssel und String-Typ-Wert speichern. Die Methode put ermöglicht das Einfügen von Elementen in die HashMap. Die for-Schleife mit Map.Entry wird verwendet, um alle Elemente in „Mitarbeiter“ zu durchlaufen. Die Methode getKey zeigt die Schlüssel an, während die Methode getValues ​​die Werte ausgibt, die diesen Schlüsseln entsprechen.

HashMap druckt die Elemente nicht entsprechend der eingefügten Reihenfolge. Obwohl es zwei Datensätze mit den gleichen Details gibt, wird außerdem nur einer von ihnen gedruckt. Das liegt daran, dass HashMap nur eindeutige Schlüssel enthält.

Was ist LinkedHashMap?

Die LinkedHashMap-Klasse ist eine Hashtable- und Linked-List-Implementierung der Map-Schnittstelle. Es hat eine vorhersehbare Iterationsreihenfolge. Es erbt die HashMap-Klasse und implementiert die Map-Schnittstelle. LinkedHashMap hat auch Schlüssel-Wert-Paare und enthält nur eindeutige Elemente. Es ist jedoch nicht synchronisiert.

Ein Beispiel ist wie folgt:

Abbildung 2: Programm mit LinkedHashMap

Im obigen Programm ist der „Mitarbeiter“ ein Objekt von LinkedHashMap. Es kann mehrere Elemente mit Integer-Typ-Schlüssel und String-Typ-Wert speichern. Die Methode put ermöglicht das Einfügen von Elementen in die LinkedHashMap. Die for-Schleife mit Map.Entry hilft dabei, alle Elemente in „Mitarbeiter“ zu durchlaufen. Die Methode getKey zeigt die Schlüssel an, während die Methode getValues ​​die Werte ausgibt, die diesen Schlüsseln entsprechen.

LinkedHashMap druckt die Elemente entsprechend der eingefügten Reihenfolge. Außerdem gibt es zwei Datensätze mit den gleichen Details, aber es wird nur einer von ihnen gedruckt. Das liegt daran, dass LinkedHashMap nur eindeutige Schlüssel enthält.

Unterschied zwischen HashMap und LinkedHashMap

Definition

HashMap ist eine Klasse, die hilft, eine Sammlung zu erstellen, die die AbstractMap-Klasse erbt und die Map-Schnittstelle implementiert, während LinkedHashMap eine Klasse ist, die eine Implementierung von Hashtable und Linked List der Map-Schnittstelle mit vorhersehbarer Iterationsreihenfolge ist. Dies ist also der Hauptunterschied zwischen HashMap und LinkedHashMap.

Anzeigenauftrag

Darüber hinaus besteht ein weiterer Unterschied zwischen HashMap und LinkedHashMap darin, dass HashMap die Reihenfolge der Dateneinfügung nicht beibehält, während LinkedHashMap die Reihenfolge der Dateneinfügung beibehält.

Assoziation mit der Sammlungsschnittstelle

Abschluss

HashMap und LinkedHashMap sind zwei Implementierungen der Map-Schnittstelle. Der Hauptunterschied zwischen HashMap und LinkedHashMap besteht darin, dass HashMap die Reihenfolge der Dateneinfügung nicht beibehält, während LinkedHashMap die Reihenfolge der Dateneinfügung beibehält.

Referenz:

1. „HashMap in Java – Javatpoint.“ www.javatpoint.com, hier verfügbar.2. „LinkedHashMap in Java – Javatpoint.“ www.javatpoint.com, hier verfügbar.

Was ist der Unterschied zwischen HashMap und LinkedHashMap?