Sobes.tech
Junior — Middle

Můžete vysvětlit vnitřní strukturu seznamu a jak je implementována v paměti?

sobes.tech AI

Odpověď od AI

V C# je datová struktura List<T> implementována jako dynamické pole. Uvnitř obsahuje:

  • Pole pevné velikosti, které uchovává prvky.
  • Pole, které ukazuje aktuální velikost (počet prvků).

Když je přidán nový prvek a pole je plné, vytvoří se nové větší pole (obvykle dvojnásobné velikosti) a všechny prvky jsou do něj zkopírovány. To umožňuje efektivní přidávání prvků při zachování přístupu podle indexu v O(1).

Příklad:

List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Uvnitř List se pole rozšiřuje podle potřeby
int first = numbers[0]; // přístup podle indexu

Tímto způsobem List<T> kombinuje výhody pole (rychlý přístup) a dynamické velikosti.