一尘不染

Java如何在迭代时从“ ArrayList”中删除元素时如何避免“ ConcurrentModificationException”?

java

我正在尝试从这样的ArrayList迭代中删除一些元素:

for (String str : myArrayList) {
    if (someCondition) {
        myArrayList.remove(str);
    }
}

当然,ConcurrentModificationException当我尝试同时从列表中删除项目时,我会得到一个提示myArrayList。有解决此问题的简单方法吗?


阅读 296

收藏
2020-02-28

共1个答案

一尘不染

使用Iterator和致电remove()

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

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

    if (someCondition)
        iter.remove();
}
2020-02-28