Java 为什么我们可以';是否在迭代时删除CopyOnWriteArrayList中的元素?

Java 为什么我们可以';是否在迭代时删除CopyOnWriteArrayList中的元素?,java,Java,我们可以在迭代时在ArrayList中执行删除操作,那么为什么在迭代时不能执行相同的操作CopyOnWriteArrayList呢 为什么在此过程中出现不支持操作异常?CopyOnWriteArrayList的所有变种(添加、删除等)都只是在创建新数组,而迭代器()只需创建一个带有数组快照的迭代器,以排除干扰的可能性,文档: “快照”样式的迭代器方法使用对 迭代器创建点处的数组。这个数组永远不会 在迭代器的生命周期内发生更改,因此不会出现干扰 不可能,迭代器保证不会抛出 ConcurrentMo

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

为什么在此过程中出现不支持操作异常?

CopyOnWriteArrayList的所有变种(添加、删除等)都只是在创建新数组,而
迭代器()
只需创建一个带有数组快照的
迭代器
,以排除干扰的可能性,文档:

“快照”样式的迭代器方法使用对 迭代器创建点处的数组。这个数组永远不会 在迭代器的生命周期内发生更改,因此不会出现干扰 不可能,迭代器保证不会抛出 ConcurrentModificationException

CopyOnWriteArrayList
的所有变种(添加、删除等)都只是在创建新数组,而
iterator()
只是创建一个带有数组快照的
迭代器,以排除干扰的可能性,文档:

“快照”样式的迭代器方法使用对 迭代器创建点处的数组。这个数组永远不会 在迭代器的生命周期内发生更改,因此不会出现干扰 不可能,迭代器保证不会抛出 ConcurrentModificationException


请显示您遇到问题的确切代码,并发布异常堆栈跟踪原因:原因可能与以下原因类似:始终阅读javadocs-它只是遵守合同。请显示您遇到问题的确切代码,以及异常堆栈后跟踪原因:原因可能与以下原因类似:总是阅读javadocs——它只是遵守它的契约。