Sobes.tech
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];
    }
}