在Java的开发中我们会遇到这样的问题:
遍历集合中的元素并且remove其中一个元素,若还在继续遍历那么就会出错了。例如:
ArrayList<String> a = new ArrayList<String>();
a.add("1");
a.add("2");
a.add("3");
for(int i=0;i<a.size();i++){
if(a.get(i).equals("2")){
a.remove(a.get(i));
}
}
如果我们进行了上面的操作,就会抛出异常了。因为在我们将2删除后,集合下标会自动缩进,也就是说3在集合中的下标会变成1而不是原来的2了。但是循环在遍历时还是按照2来获取的值,而此时下标为2的地方已经是空值了,所以会抛出异常。
这里的简单解决方法是:将我们要删除的值放入到另外一个集合b中,当我们遍历完后,在前一个集合中直接通过a.removeAll(b)的方式来删除值。
本文介绍了一个在Java开发中遇到的问题,即在遍历集合元素并尝试删除其中一个元素时,如果继续遍历可能导致的异常。通过将要删除的元素放入另一个集合并在遍历结束后使用removeAll方法来解决此问题。
1993

被折叠的 条评论
为什么被折叠?



