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