Sobes.tech
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:

  1. Se verifică dacă array-ul intern curent (de obicei Object[]) este suficient de mare pentru a stoca noul element.
  2. 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.
  3. Elementul nou este plasat în prima poziție liberă a array-ului intern.
  4. 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);
}