list的交集,差集,並集


工作中用到了list的取差集,發現還是挺好用的。
所以記錄下。

需求 list的方法 說明 備注
交集 listA.retainAll(listB) listA內容變為listA和listB都存在的對象 listB不變
差集 listA.removeAll(listB) listA中存在的listB的內容去重 listB不變
並集 listA.removeAll(listB)
listA.addAll(listB)
為了去重,listA先取差集,然后追加全部的listB listB不變

測試代碼:

// 交集
List<String> listA_01 = new ArrayList<String>(){{
    add("A");
    add("B");
}};
List<String> listB_01 = new ArrayList<String>(){{
    add("B");
    add("C");
}};
listA_01.retainAll(listB_01);
System.out.println(listA_01); // 結果:[B]
System.out.println(listB_01); // 結果:[B, C]

// 差集
List<String> listA_02 = new ArrayList<String>(){{
    add("A");
    add("B");
}};
List<String> listB_02 = new ArrayList<String>(){{
    add("B");
    add("C");
}};
listA_02.removeAll(listB_02);
System.out.println(listA_02); // 結果:[A]
System.out.println(listB_02); // 結果:[B, C]

// 並集
List<String> listA_03 = new ArrayList<String>(){{
    add("A");
    add("B");
}};
List<String> listB_03 = new ArrayList<String>(){{
    add("B");
    add("C");
}};
listA_03.removeAll(listB_03);
listA_03.addAll(listB_03);
System.out.println(listA_03); // 結果:[A, B, C]
System.out.println(listB_03); // 結果:[B, C]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM