关于原始的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--

 

posted @ 2022-08-24 16:18  企业级理解  阅读(59)  评论(0编辑  收藏  举报