Sobes.tech
Junior — Middle

Môžete vysvetliť vnútornú štruktúru a mechanizmus fungovania hash tabuľky v Jave?

sobes.tech AI

Odpoveď od AI

Hash tabuľka v Jave (napríklad HashMap) je dátová štruktúra, ktorá uchováva páry kľúč-hodnota a zabezpečuje rýchly prístup cez kľúč.

Vnútorná štruktúra:

  • Základom je pole vedier (košov).
  • Každé vedro obsahuje buď null, alebo prepojený zoznam (alebo strom, ak je veľa prvkov) prvkov s rovnakým hash kódom modulo veľkosti poľa.

Mechanizmus práce:

  1. Pri pridávaní prvku sa vypočíta hash kód kľúča a určí sa index vedra.
  2. Ak je vedro prázdne, prvok sa tam umiestni.
  3. Ak je vedro obsadené, hľadá sa v prepojenom zozname (alebo strome), či už kľúč existuje:
    • Ak je kľúč nájdený, hodnota sa aktualizuje.
    • Ak nie, prvok sa pridá do zoznamu.
  4. Keď sa dosiahne určitý prah zaplnenia, dôjde k rozšíreniu poľa (rehash), aby sa zachovala výkonnosť.

Tento prístup zabezpečuje priemernú zložitosť operácií vkladania, vyhľadávania a mazania blízku O(1).

Príklad použitia:

Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // rýchly prístup cez kľúč