从CopyOnWriteArrayList删除元素

当我尝试使用迭代器从CopyOnWriteArrayList删除元素时,出现异常。我注意到它已记录在案

不支持对迭代器本身进行元素更改操作(删除,设置和添加)。这些方法抛出UnsupportedOperationException。

(来自http://download.oracle.com/javase/6/docs/api/java/util/concurrent/CopyOnWriteArrayList.html)

现在,令人惊讶的是,我可以使用foreach对其进行迭代,并使用remove()函数。但是然后我得到了著名的错误-当尝试使用for循环从列表中删除项目时-

您跳过了已删除元素旁边的元素。有什么建议吗?

回答:

遍历集合,选择要删除的所有元素,然后将它们放入临时集合。完成迭代后,使用方法removeAll从原始集合中删除所有找到的元素。

那对你有用吗?我的意思是,不确定删除逻辑是否比您的算法更复杂。

以上是 从CopyOnWriteArrayList删除元素 的全部内容, 来源链接: utcz.com/qa/401542.html

回到顶部