Sobes.tech
Junior — Middle

¿Qué pasos se siguen para agregar un nuevo elemento a la estructura ArrayList?

sobes.tech AI

Respuesta de la IA

Al agregar un nuevo elemento a ArrayList, se realizan los siguientes pasos:

  1. Se verifica si el array interno actual (generalmente Object[]) es lo suficientemente grande para almacenar el nuevo elemento.
  2. Si no hay suficiente espacio, se crea un nuevo array con un tamaño aumentado (generalmente un 50% o 1.5 veces más), y todos los elementos se copian en él.
  3. El nuevo elemento se coloca en la primera posición libre del array interno.
  4. Se incrementa el contador de tamaño de la lista (size).

Así es como generalmente se agrega un elemento:

public boolean add(E e) {
    ensureCapacityInternal(size + 1);  // verificar y ampliar el array
    elementData[size++] = e;            // agregar el elemento y aumentar el tamaño
    return true;
}

private void ensureCapacityInternal(int minCapacity) {
    if (minCapacity - elementData.length > 0)
        grow(minCapacity);
}

private void grow(int minCapacity) {
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + (oldCapacity >> 1); // aumento del 50%
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    elementData = Arrays.copyOf(elementData, newCapacity);
}