Junior
Kaip vyksta objektų saugojimas HashMap?
sobes.tech AI
Atsakymas iš AI
Objektai saugomi kaip poros "raktas-reikšmė". HashMap naudoja "krepšelių" (buckets) masyvą. Pridedant porą:
- Raktas
hashCode()metodu apskaičiuojamas hash kodas. - Naudojant hash kodą, nustatomas masyvo krepšelio indeksas.
- Į šį krepšelį dedamas
Entryporas (arba analogas naujesnėse Java versijose), kuris apima raktą, reikšmę ir hash kodą. - Jei krepšelyje jau yra objektų, jie sudaro susietą sąrašą arba medį (didelio susidūrimo atveju).
Gaunant objektą pagal raktą:
- Rakto
hashCode()skaičiuojamas. - Nustatomas krepšelio indeksas.
- Krepšelyje ieškoma objekto su raktu, kuriam
equals()grąžinatrue, ir kuris turi atitinkamus hash kodus.
Raktai turi būti nekintami ir teisingai įgyvendinti hashCode() ir equals() metodus.