如何从列表中删除元素

klsxnrf1  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(335)

我有两个列表第一:{1,2,3,4,5},第二:{2,4}如何从第一个列表中删除元素,其中包含第二个?结果我应该有第三个列表{1,3,5}

yduiuuwa

yduiuuwa1#

简化版

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(4);

list.removeAll(list2);
System.out.println("list = " + list);

复杂版本

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(4);

for(Integer i: list2){
    if (list.contains(i)){
        int indexOfi = list.indexOf(i);
        list.remove(indexOfi);
    }
}

System.out.println("list = " + list);

这种方法的局限性在于:它只能删除 list2 元素 list .
例如:列表:[1,2,2,3,4,5],列表2:[2,4]。结果是[1,2,3,5]。
要删除重复项,可以更改 if (list.contains(i))while (list.contains(i)) .

相关问题