Junior — Middle
Puteți explica structura internă a listei și cum este implementată în memorie?
sobes.tech AI
Răspuns de la AI
În C#, structura de date List<T> este implementată ca un array dinamic. În interior conține:
- Un array de dimensiune fixă care stochează elementele.
- Un câmp care indică dimensiunea curentă (numărul de elemente).
Când se adaugă un element nou și array-ul este plin, se creează un nou array de dimensiune mai mare (de obicei de două ori mai mare), iar toate elementele sunt copiate în el. Acest lucru permite adăugarea eficientă a elementelor, păstrând accesul pe bază de index în O(1).
Exemplu:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// În interiorul List, array-ul se extinde după nevoie
int first = numbers[0]; // acces pe bază de index
Astfel, List<T> combină avantajele array-ului (acces rapid) și ale dimensiunii dinamice.