我们可以在迭代时删除ArrayList中的操作然后为什么我们在迭代时不能执行相同的操作CopyOnWriteArrayList?
为什么在此过程中会发生UnsupportedOperationException?
答案 0 :(得分:1)
CopyOnWriteArrayList
的所有mutators(添加,删除等等)只是创建新数组而iterator()
只需创建一个带有数组快照的Iterator
以排除可能性干扰,文件:
“快照”样式迭代器方法使用对状态的引用 创建迭代器时的数组。这个数组从不 在迭代器的生命周期中发生了变化,因此干扰就是 不可能,并且保证迭代器不会抛出 ConcurrentModificationException的。