Sobes.tech
Junior — Middle

Můžete vysvětlit, jak je implementována datová struktura HashMap a jak zajišťuje rychlý přístup k prvkům?

sobes.tech AI

Odpověď od AI

HashMap je datová struktura, která ukládá páry klíč-hodnota a zajišťuje rychlý přístup k hodnotám pomocí klíče. Je založena na poli bucketů, do kterého jsou prvky umístěny na základě hash kódu klíče.

Při přidávání páru se vypočítá hash kód klíče a podle něj se určí index bucketu (obvykle pomocí operace modulo s velikostí pole). Pokud je v bucketu již nějaké prvky (kolize), jsou uloženy ve formě spojového seznamu nebo stromu (v novějších verzích Java).

Při hledání prvku podle klíče se provádí:

  • Výpočet hash kódu klíče
  • Určení bucketu
  • Vyhledávání v bucketu pomocí metody equals mezi prvky se stejným hash kódem

To zajišťuje průměrnou složitost přístupu O(1), ale v nejhorším případě (mnoho kolizí) může degradovat na O(n). Aby se tomu předešlo, velikost pole se zvětšuje při dosažení určitého zatížení (load factor).