Junior — Middle
Cum este implementată structura de date List în memorie și ce mecanisme stau la baza funcționării acesteia?
sobes.tech AI
Răspuns de la AI
În C#, structura de date List<T> este implementată ca un array dinamic. În memorie, stochează elementele într-un bloc continuu, ceea ce asigură accesul rapid după index.
Principalele mecanisme de funcționare:
- Extindere dinamică: atunci când numărul de elemente depășește capacitatea curentă a array-ului, se creează un nou array de dimensiune mai mare (de obicei de două ori mai mare), iar toate elementele sunt copiate în el.
- Acces rapid după index: datorită stocării continue a elementelor, accesul la un element după index se face în timp constant O(1).
- Adăugarea elementelor: dacă există spațiu, elementul este pur și simplu adăugat la sfârșit; dacă nu, se extinde array-ul.
Exemplu:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
int first = numbers[0]; // Acces rapid
Astfel, List<T> combină confortul dimensiunii dinamice cu eficiența array-ului.