java – 如何在迭代此集合时避免ConcurrentModificationExceptio
发布时间:2020-12-14 05:52:23 所属栏目:Java 来源:网络整理
导读:我需要迭代一系列项目有时会同时添加到该集合中.但是,如果我在迭代时添加,那么我只是通过突破迭代循环来开始迭代.从头开始重新开始迭代.然而,这导致了 ConcurrentModificationException的. [下面的代码] ListInteger collection = new ArrayList(); for (Int
我需要迭代一系列项目&有时会同时添加到该集合中.但是,如果我在迭代时添加,那么我只是通过突破迭代循环来开始迭代.从头开始重新开始迭代.然而,这导致了
ConcurrentModificationException的. [下面的代码] List<Integer> collection = new ArrayList<>(); for (Integer lobId: collection) { .. if (someCondition) { collection.add(something); break; } } 我怎么能做上面这样的事情来避免ConcurrentModificationException? 简单地使用Array而不是ArrayList来避免这种异常是否正确? – 编辑: 我不想为这个arraylist创建一个新副本,因为除非完成某些要求,否则我将重复多次整个迭代过程.每次创建一个新副本会带来一些额外的开销,如果可能的话,我想避免. 如果可能的话,我想保持一个排序顺序&该集合中的唯一值.有没有可以在任何图书馆使用的东西?否则我可以在迭代过程结束时对其进行排序&删除重复项.这对我也没问题. 解决方法
这段代码不能导致ConcurrentModificationException,因为在你添加一个元素之后你就破坏了循环并且不再使用迭代器了
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |