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 }