为什么我们在迭代时无法将元素删除到CopyOnWriteArrayList?

时间:2017-08-26 19:41:28

标签: java

我们可以在迭代时删除ArrayList中的操作然后为什么我们在迭代时不能执行相同的操作CopyOnWriteArrayList?

为什么在此过程中会发生UnsupportedOperationException?

1 个答案:

答案 0 :(得分:1)

CopyOnWriteArrayList的所有mutators(添加,删除等等)只是创建新数组而iterator()只需创建一个带有数组快照的Iterator以排除可能性干扰,文件:

  

“快照”样式迭代器方法使用对状态的引用   创建迭代器时的数组。这个数组从不   在迭代器的生命周期中发生了变化,因此干扰就是   不可能,并且保证迭代器不会抛出   ConcurrentModificationException的。