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:
- Pri pridávaní prvku sa vypočíta hash kód kľúča a určí sa index vedra.
- Ak je vedro prázdne, prvok sa tam umiestni.
- 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.
- 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ľúč