Junior — Middle
Como é que a estrutura de dados ArrayList aumenta de tamanho durante a execução do programa?
sobes.tech IA
Resposta da IA
No Java, ArrayList é implementado com base numa matriz. Quando a matriz atual fica cheia e é necessário adicionar um novo elemento, a matriz interna é aumentada.
Mecanismo de aumento:
- Ao adicionar um elemento, verifica-se se há espaço suficiente na matriz atual.
- Se não houver espaço, uma nova matriz de maior tamanho é criada (geralmente cerca de 1,5 vezes maior que a atual).
- O conteúdo da matriz antiga é copiado para a nova.
- O novo elemento é adicionado à nova matriz.
Isso permite que o ArrayList cresça de forma dinâmica, mantendo um acesso rápido por índice.
Assim é geralmente feito o aumento:
int newCapacity = oldCapacity + (oldCapacity >> 1); // aumento de 50%