List中删除元素remove和removeAll

    xiaoxiao2021-03-25  129

    public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(3); list.add(4); for (int i=0; i<list.size(); i++) { if (list.get(i) == 3) { list.remove(i); } } System.out.println(list); } }

    输出结果:[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);
    转载请注明原文地址: https://ju.6miu.com/read-9354.html

    最新回复(0)