Sobes.tech
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.