Junior — Middle
Pode explicar a estrutura interna da lista e como ela é implementada na memória?
sobes.tech IA
Resposta da IA
Em C#, a estrutura de dados List<T> é implementada como um array dinâmico. Dentro dela contém:
- Um array de tamanho fixo que armazena os elementos.
- Um campo que indica o tamanho atual (número de elementos).
Quando um novo elemento é adicionado e o array está cheio, é criado um novo array de maior tamanho (geralmente o dobro), e todos os elementos são copiados para ele. Isso permite adicionar elementos de forma eficiente, mantendo o acesso por índice em O(1).
Exemplo:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Dentro do List, o array é expandido quando necessário
int first = numbers[0]; // acesso por índice
Assim, o List<T> combina as vantagens do array (acesso rápido) e do tamanho dinâmico.