Middle
21
0
questionbank

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

Answer from sobes.tech neural network

При обходе коллекции с использованием стандартного (fail-fast) итератора, любое изменение коллекции (добавление, удаление элементов) с помощью методов самой коллекции, а не итератора, приведет к генерации ConcurrentModificationException.

Итератор хранит внутреннее состояние (счетчик модификаций), которое сравнивается с состоянием коллекции при каждой операции (next(), hasNext()). Если счетчики не совпадают, выбрасывается исключение.

Пример:

java

При обходе коллекции с использованием стандартного (fail-fast) итератора, любое изменение коллекции (добавление, удаление элементов) с помощью методов самой коллекции, а не итератора, приведет к генерации ConcurrentModificationException.

Итератор хранит внутреннее состояние (счетчик модификаций), которое сравнивается с состоянием коллекции при каждой операции (next(), hasNext()). Если счетчики не совпадают, выбрасывается исключение.

Пример:

java

Register or sign in to get access to full answers for all questions from the question bank.

iterationconcurrencylist-manipulationruntime-errors