如果没有显示,请更改要删除的字符串(删除)保存并重试。 在Eclipse Juno中
我尝试使用新的String(),而不是文字,并且发生了同样的事情。
链接中的PrintScreen - http://picbg.net/img.php?file=b44ca20541c93f70.jpg
答案 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
。
失败快速迭代器的示例是ArrayList
,HashSet
。