Sobes.tech
Junior

Cum se realizează stocarea obiectelor în HashMap?

sobes.tech AI

Răspuns de la AI

Obiectele sunt stocate sub formă de perechi "cheie-valoare". HashMap folosește un array de "buckets" (găleți). La adăugarea unei perechi:

  1. Se calculează codul hash al cheii folosind hashCode().
  2. Folosind codul hash, se determină indexul găleții în array.
  3. În această găleată se plasează o pereche Entry (sau echivalent în versiunile mai noi de Java), care conține cheia, valoarea și codul hash.
  4. Dacă în găleată există deja obiecte, acestea formează o listă înlănțuită sau un copac (în cazul unui număr mare de coliziuni).

La obținerea unui obiect după cheie:

  1. Se calculează codul hash al cheii.
  2. Se determină indexul găleții.
  3. În interiorul găleții, se caută un obiect cu o cheie pentru care equals() returnează true și codurile hash coincid.

Cheile trebuie să fie imuabile și să aibă metode hashCode() și equals() implementate corect.