Junior — Middle
Ce pași se urmează pentru a adăuga un element nou în structura ArrayList?
sobes.tech AI
Răspuns de la AI
Atunci când se adaugă un element nou în ArrayList, se efectuează următorii pași:
- Se verifică dacă array-ul intern curent (de obicei Object[]) este suficient de mare pentru a stoca noul element.
- Dacă nu este suficient spațiu, se creează un nou array cu o dimensiune mărită (de obicei cu 50% sau de 1,5 ori mai mare), și toți elementele sunt copiate în el.
- Elementul nou este plasat în prima poziție liberă a array-ului intern.
- Se incrementează contorul de mărime al listei (size).
Iată cum se adaugă de obicei un element:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // verificare și extindere array
elementData[size++] = e; // adăugare element și creștere mărime
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); // creștere cu 50%
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}