相关疑难解决方法(0)

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

我试图删除一些元素ArrayList迭代它像这样:

for (String str : myArrayList) {
    if (someCondition) {
        myArrayList.remove(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,我ConcurrentModificationException试图在迭代时同时从列表中删除项目时得到一个myArrayList.有没有一些简单的解决方案来解决这个问题?

java iterator list arraylist

333
推荐指数
9
解决办法
38万
查看次数

为什么这段代码不会导致ConcurrentModificationException?

我正在阅读有关ConcurrentModificationException以及如何避免它的内容.找到一篇文章.该文章中的第一个列表的代码类似于以下内容,这显然会导致异常:

List<String> myList = new ArrayList<String>();
myList.add("January");
myList.add("February");
myList.add("March");

Iterator<String> it = myList.iterator();
while(it.hasNext())
{
    String item = it.next();
    if("February".equals(item))
    {
        myList.remove(item);
    }
}

for (String item : myList)
{
    System.out.println(item);
}
Run Code Online (Sandbox Code Playgroud)

然后它继续解释如何用各种建议解决问题.

当我试图重现它时,我没有得到例外!为什么我没有得到例外?

java iterator concurrentmodification

9
推荐指数
2
解决办法
1390
查看次数

标签 统计

iterator ×2

java ×2

arraylist ×1

concurrentmodification ×1

list ×1