Sobes.tech
Junior — Middle

Czym różni się zachowanie i cechy HashMap od LinkedHashMap w Java?

sobes.tech AI

Odpowiedź od AI

HashMap i LinkedHashMap w Javie różnią się następująco:

  • HashMap przechowuje pary klucz-wartość bez gwarancji kolejności. Kolejność elementów może się zmieniać podczas dodawania lub usuwania.

  • LinkedHashMap rozszerza HashMap i zachowuje kolejność wstawiania elementów. Oznacza to, że podczas iteracji elementy będą zwracane w kolejności, w jakiej zostały dodane.

Cechy:

  • LinkedHashMap jest nieco wolniejszy ze względu na obsługę listy powiązanej dla kolejności.
  • LinkedHashMap może być używany do implementacji pamięci podręcznych z usuwaniem w kolejności dostępu.

Przykład:

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());

Wynik:

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

Jeśli kolejność elementów jest ważna, należy użyć LinkedHashMap.