Sobes.tech
Junior — Middle

Jaký je rozdíl v chování a vlastnostech HashMap a LinkedHashMap v Javě?

sobes.tech AI

Odpověď od AI

HashMap a LinkedHashMap v Javě se liší následovně:

  • HashMap ukládá páry klíč-hodnota bez záruky pořadí. Pořadí prvků se může měnit při přidávání nebo odstraňování.

  • LinkedHashMap rozšiřuje HashMap a zachovává pořadí vložení prvků. To znamená, že při iteraci budou prvky vráceny ve stejném pořadí, v jakém byly přidány.

Vlastnosti:

  • LinkedHashMap je o něco pomalejší kvůli podpoře spojovaného seznamu pro pořadí.
  • LinkedHashMap může být použita k implementaci cache s odstraňováním podle pořadí přístupu.

Příklad:

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

Výstup:

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

Pokud je důležitý pořadí prvků, je vhodné použít LinkedHashMap.