添加 ArrayList 元素时如何避免 "ConcurrentModificationException"?

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。有什么简单的方法可以解决这个问题吗?

也许以下合集之一将代替 ArrayList?

A CopyOnWriteArrayList 将让您在不引起 ConcurrentModificationException 的情况下写作。是否是一个好的选择取决于写入迭代的相对频率。

此外,如果有并发使用的考虑,请考虑PriorityQueue as it will automatically handle ordering, or PriorityBlockingQueue