我需要迭代一系列项目&有时会同时添加到该集合中.但是,如果我在迭代时添加,那么我只是通过突破迭代循环来开始迭代.从头开始重新开始迭代.然而,这导致了
ConcurrentModificationException的. [下面的代码]
ConcurrentModificationException的. [下面的代码]
List<Integer> collection = new ArrayList<>(); for (Integer lobId: collection) { .. if (someCondition) { collection.add(something); break; } }
我怎么能做上面这样的事情来避免ConcurrentModificationException?
简单地使用Array而不是ArrayList来避免这种异常是否正确?
这有什么类型的专门收藏吗?
–
编辑:
我不想为这个arraylist创建一个新副本,因为除非完成某些要求,否则我将重复多次整个迭代过程.每次创建一个新副本会带来一些额外的开销,如果可能的话,我想避免.
如果可能的话,我想保持一个排序顺序&该集合中的唯一值.有没有可以在任何图书馆使用的东西?否则我可以在迭代过程结束时对其进行排序&删除重复项.这对我也没问题.