可以某人解释为什么会发生这种异常

时间:2014-07-11 12:14:38

标签: java eclipse exception

如果没有显示,请更改要删除的字符串(删除)保存并重试。 在Eclipse Juno中

我尝试使用新的String(),而不是文字,并且发生了同样的事情。

enter image description here

链接中的PrintScreen - http://picbg.net/img.php?file=b44ca20541c93f70.jpg

3 个答案:

答案 0 :(得分:0)

您在迭代时修改列表 - 这不起作用。你可以尝试使用普通的for循环(使用索引,而不是foreach循环)从后向前迭代它,并在迭代回到前面时删除。

答案 1 :(得分:0)

使用Iterator

   List<String> list=new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    list.add("ccc");
    list.add("ddd");

    Iterator<String> iterator=list.iterator();
    while (iterator.hasNext()){
        if("ddd".equals(iterator.next())){
            iterator.remove();
        }
    }
    System.out.println(list);

输出:

    [aaa, bbb, ccc, ccc]

答案 2 :(得分:0)

这里出现了问题,因为你在列表上进行迭代,同时试图操纵它ArrayList不支持意味着

检测集合中的修改并解析集合不是同步完成的。 此行为称为Fail fast Iterators

失败快速迭代器的示例是ArrayListHashSet