Я наткнулся на следующее утверждение в книге:
Любые изменяющие методы, вызываемые для основанных на копировании при записи
Iterator
илиListIterator
(например, добавление, установка или удаление), вызовут ошибкуUnsupportedOperationException
.
Но когда я запускаю следующий код, он работает нормально и не выдает ошибку UnsupportedOperationException
.
List<Integer> list = new CopyOnWriteArrayList<>(Arrays.asList(4, 3, 52));
System.out.println("Before " + list);
for (Integer item : list) {
System.out.println(item + " ");
list.remove(item);
}
System.out.println("After " + list);
Приведенный выше код дает следующий результат:
Before [4, 3, 52]
4
3
52
After []
Почему я не получаю исключение при изменении данного list
с помощью метода remove
?
remove
наCopyOnWriteArrayList
, а не на итератор, как упоминается в тексте, который вы цитируете. И этоUnsupportedOperationException
, а неUpsupportedOperationException
. - person Jesper   schedule 23.09.2018