Sobes.tech
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%