java – 如何在迭代此集合时避免ConcurrentModificationException?

前端之家收集整理的这篇文章主要介绍了java – 如何在迭代此集合时避免ConcurrentModificationException?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要迭代一系列项目&有时会同时添加到该集合中.但是,如果我在迭代时添加,那么我只是通过突破迭代循环来开始迭代.从头开始重新开始迭代.然而,这导致了
ConcurrentModificationException的. [下面的代码]
List<Integer> collection = new ArrayList<>();
    for (Integer lobId: collection) {
         ..
         if (someCondition) {
             collection.add(something); 
             break; 
         }
    }

我怎么能做上面这样的事情来避免ConcurrentModificationException?

简单地使用Array而不是ArrayList来避免这种异常是否正确?
这有什么类型的专门收藏吗?

编辑:

我不想为这个arraylist创建一个新副本,因为除非完成某些要求,否则我将重复多次整个迭代过程.每次创建一个新副本会带来一些额外的开销,如果可能的话,我想避免.

如果可能的话,我想保持一个排序顺序&该集合中的唯一值.有没有可以在任何图书馆使用的东西?否则我可以在迭代过程结束时对其进行排序&删除重复项.这对我也没问题.

解决方法

这段代码不能导致ConcurrentModificationException,因为在你添加一个元素之后你就破坏了循环并且不再使用迭代器了
原文链接:https://www.f2er.com/java/121005.html

猜你在找的Java相关文章