Sobes.tech
Junior — Middle

Můžete vysvětlit vnitřní strukturu a fungování HashMap v jazyce Java?

sobes.tech AI

Odpověď od AI

HashMap v Javě je datová struktura pro ukládání párů klíč-hodnota s rychlým přístupem přes klíč.

Vnitřní struktura:

  • HashMap používá pole košů (bucket array).
  • Pro klíč se vypočítá hash kód (hashCode), který je následně převeden na index pole.
  • V každém koši jsou uloženy prvky se stejným indexem, obvykle ve formě spojovaného seznamu nebo stromu (s Java 8, pokud je mnoho kolizí).

Fungování:

  • Při vkládání objektu se vypočítá index podle hashe klíče.
  • Pokud je koš prázdný, prvek se tam umístí.
  • Pokud je koš obsazen, kontroluje se rovnost klíčů (equals) pro aktualizaci hodnoty nebo přidání nového prvku.
  • Při hledání podle klíče se také vypočítá index a prohledají se prvky v koši, aby se našla shoda.

Příklad:

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5

Tím HashMap zajišťuje průměrnou dobu přístupu O(1), ale při mnoha kolizích se může zhoršit na O(n).