Sobes.tech
Junior — Middle

Puteți explica cum este implementată structura de date HashMap și cum asigură accesul rapid la elemente?

sobes.tech AI

Răspuns de la AI

HashMap este o structură de date care stochează perechi cheie-valoare și asigură acces rapid la valori prin cheie. Se bazează pe un array de bucket-uri în care elementele sunt plasate în funcție de codul hash al cheii.

Când adăugăm o pereche, se calculează codul hash al cheii și apoi se determină indexul bucket-ului (de obicei prin operație modulo cu dimensiunea array-ului). Dacă în bucket există deja elemente (coliziune), acestea sunt stocate sub formă de listă legată sau arbore (în versiunile mai recente de Java).

La căutarea unui element după cheie, se efectuează:

  • Calculul codului hash al cheii
  • Determinarea bucket-ului
  • Căutarea în bucket folosind equals între elementele cu același cod hash

Aceasta asigură o complexitate medie de acces O(1), dar în cel mai rău caz (multe coliziuni) poate degrada la O(n). Pentru a evita acest lucru, dimensiunea array-ului este mărită atunci când se atinge un anumit factor de încărcare (load factor).