Sobes.tech
Junior — Middle

Cum se creează și se mențin legăturile dintre chei și valori în structura de date Map?

sobes.tech AI

Răspuns de la AI

În Go, structura de date map implementează un array asociativ, unde cheile sunt legate de valori. Crearea și menținerea acestor legături se face după cum urmează:

  • La crearea unui map, se alocă o tabelă hash, în care cheile sunt hash-uite pentru acces rapid.
  • Pentru fiecare cheie, se calculează o funcție hash care determină indicele în array-ul de bucket-uri.
  • În bucket-uri se stochează perechi cheie-valoare. Dacă apare o coliziune (mai multe chei cu același hash), se folosește o listă înlănțuită sau o altă structură pentru stocarea mai multor perechi.
  • La adăugarea sau actualizarea unei valori după cheie, map caută bucket-ul după hash și actualizează sau adaugă perechea.
  • La citirea unei valori după cheie, se face o căutare similară după hash și compararea cheilor.

Exemplu de utilizare a map:

m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5

Astfel, legăturile dintre chei și valori sunt menținute prin hash-ul cheilor și stocarea perechilor în bucket-urile corespunzătoare.