本で次のような記述を見つけました。
コピー オン ライト ベースの
Iterator
orListIterator
(追加、設定、削除など) で呼び出された変更メソッドは、 をスローし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