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]
  • 相关阅读:
    Gitee 码云 pages 搭建vue项目记录
    vscode 双击选中用中划线拼接的名称和几个常用的扩展
    在ios微信客户端遇到的坑,input等错位
    vscode管理员身份运行
    使用tcpdump测试反向代理和lvs的nat区别
    Linux配置snmp
    Nginx做web服务器反向代理
    centos7.1安装tomcat8
    kvm报错集
    lsof一些使用
  • 原文地址:https://www.cnblogs.com/deepalley/p/13139579.html
Copyright © 2011-2022 走看看