Sobes.tech
Junior — Middle
126

Hogyan valósul meg pontosan az ArrayList belső struktúráján belüli elemek törlésének eljárása?

Cégeket kérdeztek
ВТБВТБ

Válasz az MI-től

sobes.tech MI

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