zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    Jenkins构建触发器(定时构建项目)
    Linux–Nginx攻略
    Python单元测试——深入理解unittest
    数据库设计三大范式
    Selenium 高阶应用之WebDriverWait 和 expected_conditions
    python基础——对时间进行加减
    并发并行同步异步多线程
    js同步和异步
    hibernate中session.flush()
    Hibernate实现分页查询
  • 原文地址:https://www.cnblogs.com/changfanchangle/p/8966860.html
Copyright © 2011-2022 走看看