输出结果:[1, 2, 3, 4] List中元素没有全部删除,由于每remove掉一个元素以后,后面的元素都会向前移动,导致则刚刚移过来的元素没有被读取。所以通过从后向前遍历可以解决这个问题,代码如下:
for (int i = list.size() - 1; i >= 0; i--) { System.out.println(i); if (list.get(i) == 3) { list.remove(i); } }也可以通过removeAll方法删除,传参是Collection
List<Integer> item = new ArrayList<Integer>(); item.add(3); list.removeAll(item);