zoukankan      html  css  js  c++  java
  • [转]list的交集,差集,并集

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

    工作中用到了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]
  • 相关阅读:
    UVa 10010 Where's Waldorf?
    boost 学习笔记
    C++ enum类型的一个更好的用法
    新浪面试题:删除字符串中多余的空格
    微软面试题:写程序找出二叉树的深度
    c++中sizeof的分析
    复习计划
    boost学习之 时间和日期 timer
    c++ template学习总结3
    微软面试题:反序一个单向链表
  • 原文地址:https://www.cnblogs.com/dirgo/p/10421781.html
Copyright © 2011-2022 走看看