![](/img/trans.png)
[英]Throwing ConcurrentModificationException if we add elements in ArrayList at the end while iterating
[英]How to avoid "ConcurrentModificationException" while add ArrayList elements?
我正在尝试按特定顺序将项目添加到 ArrayList
Iterator<Rating> it = arr.iterator();
while(it.hasNext()){
Rating o = it.next();
int index = arr.indexOf(o);
if(o.getRating() < this.getRating()) {
arr.add(index, this);
}
}
尝试这样做时,我得到了一个 ConcurrentModificationException。 有没有一些简单的解决方案来解决这个问题?
也许以下 collections 之一将代替ArrayList
服务?
CopyOnWriteArrayList将让您在写入时不会导致ConcurrentModificationException
。 它是否是一个好的选择取决于写入迭代的相对频率。
此外,请考虑PriorityQueue ,因为它会自动处理排序,或者如果有并发使用的考虑,请考虑PriorityBlockingQueue 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.