Sobes.tech
Junior — Middle
119

Kā tieši tiek īstenota elementu dzēšanas procedūra no ArrayList iekšējās struktūras?

Uzņēmumi, kur jautāja
ВТБВТБ

Atbilde no AI

sobes.tech AI

Внутри ArrayList элементы хранятся в массиве. При удалении элемента по индексу происходит сдвиг всех последующих элементов на одну позицию влево, чтобы заполнить освободившееся место. Размер списка уменьшается на 1, а последний элемент массива обнуляется для освобождения ссылки и предотвращения утечки памяти.

Пример упрощённого кода удаления:

public E remove(int index) {
    E oldValue = elementData[index];
    int numMoved = size - index - 1;
    if (numMoved > 0) {
        System.arraycopy(elementData, index + 1, elementData, index, numMoved);
    }
    elementData[--size] = null; // освобождаем ссылку
    return oldValue;
}