Sobes.tech
Junior — Middle

Care este diferența de comportament și caracteristici între HashMap și LinkedHashMap în Java?

sobes.tech AI

Răspuns de la AI

HashMap și LinkedHashMap în Java diferă după cum urmează:

  • HashMap stochează perechi cheie-valoare fără garanția ordinii. Ordinea elementelor se poate schimba la adăugare sau ștergere.

  • LinkedHashMap extinde HashMap și păstrează ordinea de inserare a elementelor. Aceasta înseamnă că, la iterare, elementele vor fi returnate în ordinea în care au fost adăugate.

Caracteristici:

  • LinkedHashMap este puțin mai lent din cauza suportului pentru o listă legată pentru ordine.
  • LinkedHashMap poate fi utilizat pentru implementarea cache-urilor cu eliminare în ordinea accesului.

Exemplu:

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

Ieșire:

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

Prin urmare, dacă ordinea elementelor este importantă, trebuie utilizat LinkedHashMap.