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(); // безопасное удаление
}
}
Таким образом, удаление не нарушит работу итератора и исключения не возникнет.