Junior — Middle
Môžete vysvetliť princíp fungovania hashovania pri implementácii mapy (Map)?
sobes.tech AI
Odpoveď od AI
V jazyku Go je mapa (mapa) implementovaná ako hashovacia tabuľka, kde sú kľúče prevedené na hash hodnoty pomocou hashovacej funkcie. Princíp fungovania hashovania v mape je nasledovný:
- Pre daný kľúč sa vypočíta hash kód — číselná hodnota závislá od obsahu kľúča.
- Hash kód sa používa na určenie indexu v poli košov (vedier), kde je uložená hodnota.
- Ak je v koši viac prvkov (kolízia), hľadá sa pomocou reťazca alebo iného mechanizmu riešenia kolízií.
Toto umožňuje rýchle nájdenie, pridanie a odstránenie prvkov podľa kľúča s amortizovanou zložitosťou približne O(1).
Príklad použitia mapy v jazyku Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
V tomto príklade je reťazec "apple" hashovaný a hodnota 5 je uložená v príslušnom koši.