Junior — Middle
Kunt u de interne datastructuur van de lijst uitleggen en hoe deze in het geheugen is geïmplementeerd?
sobes.tech AI
Antwoord van AI
In C# wordt de datastructuur List<T> geïmplementeerd als een dynamische array. Het bevat:
- Een vaste grootte array die de elementen opslaat.
- Een veld dat de huidige grootte (aantal elementen) aangeeft.
Wanneer een nieuw element wordt toegevoegd en de array vol is, wordt er een nieuwe array met grotere grootte (meestal twee keer zo groot) gemaakt, en worden alle elementen daarin gekopieerd. Dit maakt het mogelijk om efficiënt elementen toe te voegen, terwijl de toegang via index in O(1) blijft.
Voorbeeld:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Binnen List wordt de array uitgebreid indien nodig
int first = numbers[0]; // toegang via index
Op deze manier combineert List<T> de voordelen van arrays (snelle toegang) en dynamische grootte.