关于原始的for循环删除集合元素的时候有可能会漏掉某个元素
代码
/**
* 假设需要删除集合中的所有的"A"元素
* 如果使用原始的for循环,那么就可能会漏删
*/
List<String> list = new ArrayList<>();
list.add("A");
list.add("A");
list.add("B");
for(int i=0; i<list.size(); i++) {
if("A".equals(list.get(i))) {
list.remove(i);
}
}
System.out.println(list);
输出结果:[A, B]
可以看到集合中只有一个"A"被删了,第二个"A"却还在!
原因如下:
解决办法:在删除元素之后再加一行代码i--