Назад к вопросам
Junior — Middle
65
Какие действия происходят в памяти при удалении элемента из массива?
Ответ от нейросети
sobes.tech AI
В Java массивы имеют фиксированный размер, поэтому при удалении элемента из массива нельзя просто «удалить» ячейку памяти. Вместо этого обычно происходит следующее:
- Создаётся новый массив меньшего размера (на один элемент меньше).
- Копируются все элементы, кроме удаляемого, из старого массива в новый.
- Ссылка на старый массив заменяется ссылкой на новый.
В памяти старый массив остаётся до тех пор, пока на него есть ссылки, после чего он будет очищен сборщиком мусора.
Если говорить о низкоуровневом понимании, то:
- Память, выделенная под старый массив, не изменяется.
- Новый массив выделяется в другой области памяти.
- Копирование элементов — это операция копирования значений в новую область.
Пример кода:
int[] oldArray = {1, 2, 3, 4};
int removeIndex = 2; // удалить элемент с индексом 2 (число 3)
int[] newArray = new int[oldArray.length - 1];
for (int i = 0, j = 0; i < oldArray.length; i++) {
if (i != removeIndex) {
newArray[j++] = oldArray[i];
}
}
oldArray = newArray; // теперь oldArray указывает на новый массив без удалённого элемента
Таким образом, удаление элемента из массива в Java — это создание нового массива и копирование данных без удалённого элемента.