Junior — Middle
Puoi spiegare la struttura interna della lista e come è implementata in memoria?
sobes.tech AI
Risposta dell'AI
In C#, la struttura dati List<T> è implementata come un array dinamico. Al suo interno contiene:
- Un array di dimensione fissa che memorizza gli elementi.
- Un campo che indica la dimensione attuale (numero di elementi).
Quando si aggiunge un nuovo elemento e l'array è pieno, viene creato un nuovo array di dimensione maggiore (di solito il doppio), e tutti gli elementi vengono copiati in esso. Questo permette di aggiungere elementi in modo efficiente, mantenendo l'accesso tramite indice in O(1).
Esempio:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// All'interno di List, l'array viene espanso quando necessario
int first = numbers[0]; // accesso tramite indice
In questo modo, List<T> combina i vantaggi dell'array (accesso rapido) e della dimensione dinamica.