Junior — Middle
Que estrutura de dados é usada para implementar um array dinâmico semelhante ao ArrayList?
sobes.tech IA
Resposta da IA
Array dinâmico, semelhante ao ArrayList em Java, implementado com um array comum. A ideia principal é que, ao atingir o tamanho atual do array, um novo array com capacidade aumentada (geralmente 1,5 a 2 vezes maior) é alocado, e todos os elementos são copiados para ele.
Isso permite adicionar elementos de forma eficiente sem alocações frequentes de memória, mantendo um acesso rápido por índice.
Exemplo de lógica simplificada:
class SimpleArrayList<E> {
private Object[] data;
private int size = 0;
public SimpleArrayList() {
data = new Object[10];
}
public void add(E element) {
if (size == data.length) {
Object[] newData = new Object[data.length * 2];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
data[size++] = element;
}
public E get(int index) {
if (index >= size || index < 0) throw new IndexOutOfBoundsException();
return (E) data[index];
}
}