[转]list的交集,差集,并集

原文地址:https://www.cnblogs.com/changfanchangle/p/8966860.htmlhtml

工做中用到了list的取差集,发现仍是挺好用的。
因此记录下。docker

需求 list的方法 说明 备注
交集 listA.retainAll(listB) listA内容变为listA和listB都存在的对象 listB不变
差集 listA.removeAll(listB) listA中存在的listB的内容去重 listB不变
并集 listA.removeAll(listB)
listA.addAll(listB)
为了去重,listA先取差集,而后追加所有的listB listB不变

测试代码:bash

// 交集
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]
相关文章
相关标签/搜索