Назад к вопросам
ВТБ
Junior — Middle
66
Как именно реализована процедура удаления элементов из ArrayList внутри его внутренней структуры?
Компании, где спрашивали
Ответ от нейросети
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;
}