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:
- Se verifica si el array interno actual (generalmente Object[]) es lo suficientemente grande para almacenar el nuevo elemento.
- 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.
- El nuevo elemento se coloca en la primera posición libre del array interno.
- 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);
}