从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