Sobes.tech
Junior — Middle

Môžete vysvetliť, ako sa pristupuje k prvku v štruktúre HashMap?

sobes.tech AI

Odpoveď od AI

V Jave je HashMap implementovaný na základe poľa bucketov, z ktorých každý obsahuje spojený zoznam alebo strom (od Java 8) prvkov so zhodným hash kódom.

Prístup k prvku prebieha takto:

  1. Vypočíta sa hash kód kľúča pomocou hashCode().
  2. Hash kód sa prevedie na index poľa bucketov (zvyčajne pomocou operácie hash & (capacity - 1)).
  3. V zvolenom bucketu sa hľadá prvok s kľúčom rovnakým ako hľadaný (porovnaním pomocou equals()).
  4. Ak je prvok nájdený, vráti sa s ním spojená hodnota.

Príklad:

HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // vypočíta sa hash, vyberie sa bucket, hľadá sa prvok

Týmto spôsobom je prístup k prvku zložený z výpočtu hashu, výberu bucketu a hľadania podľa kľúča vo vnútri bucketu.