簡體   English   中英

如何從列表中刪除元素

[英]How can I delete elements from list

我有 2 個列表:

第一個:{1, 2, 3, 4, 5},
第二:{2, 4}

如何從第一個列表中刪除包含在第二個列表中的元素? 結果我應該有第三個列表 {1, 3, 5}

簡化版

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM