Sobes.tech
Junior — Middle
127

Kako je tačno implementiran postup uklanjanja elemenata iz ArrayList unutar njegove unutrašnje strukture?

Компаније где су питане
ВТБВТБ

Одговор од АИ

sobes.tech АИ

Внутри 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;
}