Sobes.tech
Junior — Middle

Was ist der Unterschied im Verhalten und in den Eigenschaften von HashMap und LinkedHashMap in Java?

sobes.tech KI

Antwort von AI

HashMap und LinkedHashMap in Java unterscheiden sich wie folgt:

  • HashMap speichert Schlüssel-Wert-Paare ohne Garantie für die Reihenfolge. Die Reihenfolge der Elemente kann sich beim Hinzufügen oder Entfernen ändern.

  • LinkedHashMap erweitert HashMap und erhält die Einfügereihenfolge der Elemente. Das bedeutet, dass bei der Iteration die Elemente in der Reihenfolge zurückgegeben werden, in der sie hinzugefügt wurden.

Eigenschaften:

  • LinkedHashMap ist etwas langsamer aufgrund der Unterstützung einer verketteten Liste für die Reihenfolge.
  • LinkedHashMap kann verwendet werden, um Caches mit Entfernung nach Zugriffsreihenfolge zu implementieren.

Beispiel:

Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("one", 1);
hashMap.put("two", 2);
hashMap.put("three", 3);

Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("one", 1);
linkedHashMap.put("two", 2);
linkedHashMap.put("three", 3);

System.out.println("HashMap: " + hashMap.keySet());
System.out.println("LinkedHashMap: " + linkedHashMap.keySet());

Ausgabe:

HashMap: [two, one, three]
LinkedHashMap: [one, two, three]

Wenn die Reihenfolge der Elemente wichtig ist, sollte man LinkedHashMap verwenden.