Junior — Middle
105
Πώς υλοποιείται ακριβώς η διαδικασία διαγραφής στοιχείων από το ArrayList μέσα στη εσωτερική του δομή;
Εταιρείες όπου ρωτήθηκαν
Απάντηση από 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;
}