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

  1. Raktas hashCode() metodu apskaičiuojamas hash kodas.
  2. Naudojant hash kodą, nustatomas masyvo krepšelio indeksas.
  3. Į šį krepšelį dedamas Entry poras (arba analogas naujesnėse Java versijose), kuris apima raktą, reikšmę ir hash kodą.
  4. Jei krepšelyje jau yra objektų, jie sudaro susietą sąrašą arba medį (didelio susidūrimo atveju).

Gaunant objektą pagal raktą:

  1. Rakto hashCode() skaičiuojamas.
  2. Nustatomas krepšelio indeksas.
  3. Krepšelyje ieškoma objekto su raktu, kuriam equals() grąžina true, ir kuris turi atitinkamus hash kodus.

Raktai turi būti nekintami ir teisingai įgyvendinti hashCode() ir equals() metodus.