Junior — Middle
El tudná magyarázni a Java-ban lévő hash-tábla belső szerkezetét és működési mechanizmusát?
sobes.tech MI
Válasz az MI-től
A Java-ban (például HashMap) egy hash-tábla olyan adatszerkezet, amely kulcs-érték párokat tárol, és gyors hozzáférést biztosít a kulcs alapján.
Belső szerkezet:
- Az alap egy tömb vödrökből (kádakból) áll.
- Minden vödör vagy
null, vagy egy láncolt lista (vagy fa, ha sok elem van) azonos hash-kódú elemekből, a tömb méretének modulo értékével.
Működési mechanizmus:
- Elem hozzáadásakor kiszámítjuk a kulcs hash-kódját, és meghatározzuk a vödör indexét.
- Ha a vödör üres, az elem oda kerül.
- Ha a vödör foglalt, keresést végzünk a láncolt listában (vagy fában), hogy megtaláljuk-e a kulcsot:
- Ha igen, az érték frissül.
- Ha nem, az elemet hozzáadjuk a listához.
- Amikor egy bizonyos töltöttségi küszöböt elér, a tömb bővítésre kerül (rehash), hogy megőrizze a teljesítményt.
Ez a megközelítés átlagosan O(1) közelében tartja az beszúrás, keresés és törlés műveletek összetettségét.
Használati példa:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // gyors elérés kulcs szerint