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

  1. Elem hozzáadásakor kiszámítjuk a kulcs hash-kódját, és meghatározzuk a vödör indexét.
  2. Ha a vödör üres, az elem oda kerül.
  3. 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.
  4. 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