Sobes.tech
Junior — Middle

Čo sa stane vo vnútri dátovej štruktúry HashMap, ak všetky jej prvky majú rovnaký kľúč?

sobes.tech AI

Odpoveď od AI

Ak v HashMap všetky prvky majú rovnaký kľúč, v štruktúre zostane v podstate len jeden prvok — posledný pridaný s týmto kľúčom. HashMap neumožňuje duplikáty kľúčov, preto pri pridávaní novej hodnoty s už existujúcim kľúčom sa stará hodnota prepíše.

Vnútorné, HashMap používa hashovaciu funkciu na rozdelenie prvkov do košov (buckets). Ak sú všetky kľúče rovnaké, všetky prvky padnú do jedného koša, čo štruktúru premení na prepojený zoznam alebo strom (v závislosti od implementácie a veľkosti). To výrazne zhoršuje výkon operácií vyhľadávania a vkladania, ktoré namiesto O(1) sú O(n).

Príklad:

HashMap<String, Integer> map = new HashMap<>();
map.put("key", 1);
map.put("key", 2);
System.out.println(map.get("key")); // Vytlačí 2

Tu bude hodnota 1 prepísaná hodnotou 2 pre kľúč "key".