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.