Junior — Middle
Quali passaggi vengono eseguiti per aggiungere un nuovo elemento alla struttura ArrayList?
sobes.tech AI
Risposta dell'AI
Quando si aggiunge un nuovo elemento a ArrayList, vengono eseguiti i seguenti passaggi:
- Si verifica se l'array interno attuale (di solito Object[]) è abbastanza grande da contenere il nuovo elemento.
- Se non c'è spazio sufficiente, viene creato un nuovo array con una dimensione aumentata (di solito del 50% o 1,5 volte più grande), e tutti gli elementi vengono copiati in esso.
- Il nuovo elemento viene inserito nella prima posizione libera dell'array interno.
- Il contatore della dimensione della lista (size) viene incrementato.
Ecco come generalmente si aggiunge un elemento:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // verifica e espansione dell'array
elementData[size++] = e; // aggiunta dell'elemento e incremento della dimensione
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);
}