Junior — Middle
Meg tudná magyarázni, hogyan lehet hozzáférni egy elemhez a HashMap struktúrában?
sobes.tech MI
Válasz az MI-től
Java-ban a HashMap egy hash kódon alapuló tömbön van megvalósítva, amelynek minden egyes elemét ugyanazzal a hash kóddal rendelkező elemek láncolt listája vagy (Java 8-tól kezdődően) fája tartalmazza.
Az elemhez való hozzáférés így történik:
- A kulcs hash kódját a
hashCode()metódus segítségével számítjuk ki. - A hash kódot általában a
hash & (capacity - 1)művelettel alakítjuk át a tömb indexévé. - A kiválasztott bucketben megkeressük a keresett kulccsal megegyező elemet (
equals()segítségével történő összehasonlítás). - Ha megtaláljuk az elemet, akkor visszaadjuk a hozzá tartozó értéket.
Példa:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // hash számítása, bucket kiválasztása, elem keresése
Így az elemhez való hozzáférés a hash kiszámításából, a bucket kiválasztásából és a kulcs szerinti keresésből áll a bucketen belül.