Sobes.tech
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:

  1. A kulcs hash kódját a hashCode() metódus segítségével számítjuk ki.
  2. A hash kódot általában a hash & (capacity - 1) művelettel alakítjuk át a tömb indexévé.
  3. A kiválasztott bucketben megkeressük a keresett kulccsal megegyező elemet (equals() segítségével történő összehasonlítás).
  4. 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.