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]
  • 相关阅读:
    Mac下github项目检出与提交
    Mac下Vim配置语法高亮
    Mac下JDK安装配置
    shiro实现app和web统一登录
    mysql优化30条建议
    log4j配置说明
    lambda遍历的精简
    lambda表达式详解
    dubbo
    java8新特性lamda表达式在集合中的使用
  • 原文地址:https://www.cnblogs.com/changfanchangle/p/8966860.html
Copyright © 2011-2022 走看看