Sobes.tech
Junior

Kā notiek objektu glabāšana HashMap?

sobes.tech AI

Atbilde no AI

Objekti tiek glabāti kā pāri "atslēga-vērtība". HashMap izmanto "kasteņu" (buckets) masīvu. Pievienojot pāri:

  1. Atslēgas hash-kods tiek aprēķināts ar hashCode() metodi.
  2. Izmantojot hash-kodu, tiek noteikts masīva kasteņu indekss.
  3. Šajā kastē tiek novietots Entry pāris (vai līdzvērtīgs jaunākās Java versijās), kas satur atsleģi, vērtību un hash-kodu.
  4. Ja kastē jau ir objekti, tie veido sasaistītu sarakstu vai koku (lielas kolīzijas gadījumā).

Objekta iegūšanai pēc atsleģes:

  1. Atslēgas hash-kods tiek aprēķināts.
  2. Tiek noteikts kastītes indekss.
  3. Kastē tiek meklēts objekts ar atsleģi, kurai equals() atgriež true, un kas atbilst hash-kodam.

Atslēgas jābūt nemainīgām un pareizi jāīsteno hashCode() un equals() metodes.