Sobes.tech
Junior — Middle
109

Ce se întâmplă dacă se împiedică eliminarea elementelor din colecție în timpul parcurgerii acesteia?

Răspuns de la AI

sobes.tech AI

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

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

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

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