Sobes.tech
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).