Назад к вопросам
Junior — Middle
72
Что происходит, если препятствовать удалению элементов из коллекции во время её перебора?
Ответ от нейросети
sobes.tech AI
Если во время перебора коллекции в Java попытаться удалить элементы напрямую из неё (например, через метод коллекции), это приведёт к ConcurrentModificationException. Это происходит потому, что итератор отслеживает изменения коллекции, и удаление вне его методов нарушает целостность итерации.
Правильный способ удаления элементов во время перебора — использовать метод remove() самого итератора:
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (условие) {
iterator.remove(); // безопасное удаление
}
}
Таким образом, удаление не нарушит работу итератора и исключения не возникнет.