Sobes.tech
Назад к вопросам
Junior — Middle
72

Что происходит, если препятствовать удалению элементов из коллекции во время её перебора?

Ответ от нейросети

sobes.tech AI

Если во время перебора коллекции в Java попытаться удалить элементы напрямую из неё (например, через метод коллекции), это приведёт к ConcurrentModificationException. Это происходит потому, что итератор отслеживает изменения коллекции, и удаление вне его методов нарушает целостность итерации.

Правильный способ удаления элементов во время перебора — использовать метод remove() самого итератора:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (условие) {
        iterator.remove(); // безопасное удаление
    }
}

Таким образом, удаление не нарушит работу итератора и исключения не возникнет.