ArrayList删除元素

因为foreach删除会导致快速失败问题,for i 顺序遍历会导致重复元素没删除,所以正确解法如下:

 

第一种遍历,倒序遍历删除


第二种,迭代器删除

 

 1 public void test2(){
 2         List<Integer> li = new ArrayList<>();
 3         li.add(1);
 4         li.add(1);
 5         li.add(3);
 6         for(int i = li.size() - 1; i >= 0; i--){
 7             if(li.get(i).equals(1)){
 8                 li.remove(li.get(i));
 9             }
10         }
11         System.out.println(li);
12 
13         li.add(2);
14         li.add(3);
15         li.add(4);
16         Iterator it = li.iterator();
17         while(it.hasNext()){
18             if(it.next().equals(2)){
19                 it.remove();
20             }
21         }
22         System.out.println(li);
23     }

 

posted @ 2022-03-21 10:58  r1-12king  阅读(194)  评论(0编辑  收藏  举报