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:
- Vypočíta sa hash kód kľúča pomocou
hashCode(). - Hash kód sa prevedie na index poľa bucketov (zvyčajne pomocou operácie
hash & (capacity - 1)). - V zvolenom bucketu sa hľadá prvok s kľúčom rovnakým ako hľadaný (porovnaním pomocou
equals()). - 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.