Junior — Middle
Vysvětlete, co znamená kolize klíčů ve struktuře dat HashMap a jak s tímto problémem zachází.
sobes.tech AI
Odpověď od AI
Kolize klíčů (hash collision) v HashMap nastává, když dva různé klíče při výpočtu hash funkce dávají stejnou hodnotu indexu pro uložení v poli.
Jak s tím HashMap pracuje:
- V Javě HashMap používá řetězce (spojené seznamy nebo vyvážené stromy) k uložení více prvků, které spadnou do stejného košíku.
- Při přidání nového prvku s klíčem, jehož hash se shoduje s již existujícím, je nový prvek přidán do řetězce tohoto košíku.
- Při hledání klíče HashMap prochází prvky v řetězci a porovnává klíče metodou equals(), aby našel správný.
Od Java 8, pokud se řetězec stane příliš dlouhým, je převeden na vyvážený strom (TreeNode), což zlepšuje výkon hledání z O(n) na O(log n).