This question already has answers here:
Iterating through a Collection, avoiding ConcurrentModificationException when removing objects in a loop

(27个答案)


6年前关闭。




我正在尝试从ArrayList中删除一些元素,同时进行如下迭代:
for (String str : myArrayList) {
    if (someCondition) {
        myArrayList.remove(str);
    }
}

当然,在尝试重复ConcurrentModificationException的同时尝试从列表中删除项目时,我得到了myArrayList。有解决此问题的简单方法吗?

最佳答案

使用 Iterator 并调用 remove() :

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
    String str = iter.next();

    if (someCondition)
        iter.remove();
}

09-27 00:30