一、CollectionUtils工具类之并集union(arr1,arr2)和差集subtract(arr1,arr2)

采用的类:

import org.apache.commons.collections4.CollectionUtils;

①并集union(arr1,arr2)

这是将两个集合加在一起,然后去重

List<Integer> orderList1 = Arrays.asList(1, 2, 3);

List<Integer> orderList2 = Arrays.asList(3, 4, 5);

List<Integer> union = new ArrayList<>(CollectionUtils.union(orderList1, orderList2)); 

// 1,2,3,4,5
System.out.println("union = " + union);

②差集subtract(arr1,arr2)

这是将两个集合的差,如1,2,3 差集3,4,5就会得到1,2,将3这个重复的去掉

List<Integer> orderList1 = Arrays.asList(1, 2, 3);

List<Integer> orderList2 = Arrays.asList(3, 4, 5);

List<Integer> subtract = new ArrayList<>(CollectionUtils.subtract (orderList1, orderList2));

// 1,2
System.out.println("subtract = " + subtract );

③遇到的问题

返回值是父级的Collection<O>,这样的话如果只想做合并去重的话就会导致类型不一致,而照成麻烦

List<Integer> orderList1 = Arrays.asList(1, 2, 3);

List<Integer> orderList2 = Arrays.asList(3, 4, 5);

Collection<Integer> union = CollectionUtils.union(orderList1, orderList2);

// 1,2,3,4,5
System.out.println("union = " + union);

如需要转换为对应的类型,如上转回List<Integer>可以有几种方案

方案1

List<Integer> union = new ArrayList<>(CollectionUtils.union(orderList1, orderList2));

方案2

// 这个会警告,我们这里是加了一个.distinct()做过度
List<Integer> union1 = CollectionUtils.union(orderList1, orderList2).stream().collect(Collectors.toList());

CollectionUtils工具类之并集union(arr1,arr2)和差集subtract(arr1,arr2)的更多相关文章

  1. java代码之美(12)---CollectionUtils工具类

    java代码之美(12)---CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的, 而不是springframework下的CollectionUt ...

  2. CollectionUtils工具类

    CollectionUtils工具类 这篇讲的CollectionUtils工具类是在apache下的,可以使代码更加简洁和安全. 使用前需导入依赖 <dependency> <gr ...

  3. java代码(12) ---CollectionUtils工具类

    CollectionUtils工具类 CollectionUtils工具类是在apache下的,而不是springframework下的CollectionUtils 个人觉得在真实项目中Collec ...

  4. StringUtils、CollectionUtils工具类的常用方法

    唯能极于情,故能极于剑 欢迎来到 “程序牛CodeCow” 的博客,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流 下面将为大家演示StringUtils.CollectionUti ...

  5. 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空

    通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...

  6. CollectionUtils工具类的常用方法

    集合判断:  例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): t ...

  7. CollectionUtils工具类中常用方法

    @SuppressWarnings("rawtypes") @Test public void test1() { List<String> coll = new Ar ...

  8. CollectionUtils工具类使用指南

    CollectionUtils提供很多对集合的操作方法,常用的方法如下:(参考文章:http://www.open-open.com/code/view/1420470842125) import o ...

  9. 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils的使用

    主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度为0.最近才发现此工具类还可以取集合的交集.并集.甚至差集 ...

随机推荐

  1. 【C# Parallel】ParallelOptions

    ParallelOptions 构造函数 此构造函数用默认值初始化实例. MaxDegreeOfParallelism 初始化为-1,表示没有对应采用的并行度进行上限设置. CancellationT ...

  2. 【C#】AssemblyLoadContext 加载程序集

    使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载 一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.N ...

  3. 【2021新】C#数字格式化字符串

    引用来源: https://www.cnblogs.com/flyingbread/archive/2007/01/18/620287.html https://www.cnblogs.com/117 ...

  4. xls/csv文件转换成dbf文件

    转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...

  5. Python:在cmd中使用pip安装第三方库时出现SyntaxError

    原因:pip安装库时不需要进入Python环境,在Python环境下安装就会出现SyntaxError 解决方法:输入exit(),退出Python环境,然后就可以pip安装了

  6. adb常用命令大全——查看手机设备信息

    查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery 其中 scale 代表最大电量,level 代表当 ...

  7. 5分钟学会 gRPC

    介绍 我猜测大部分长期使用 Java 的开发者应该较少会接触 gRPC,毕竟在 Java 圈子里大部分使用的还是 Dubbo/SpringClound 这两类服务框架. 我也是近段时间有机会从零开始重 ...

  8. 【战略】以色列公司的数据驱动tip

    Eric Rapps:我们的团队获得了大量的收入,并且持续保持着增长.如果获得我们的投资,实际上是你是获得了和相关领域技术积累.专家沟通的支持.但更重要的是,你可以近距离地接触我们的运营资源,您可以直 ...

  9. itertools.chain()and itertools.product()操作+pandas.DataFrame.transform

  10. [动态规划] 适合DJ银行的日子

    [动态规划] 适合DJ银行的日子 前言:开始的时候用常规模拟做的超时了,然后看官方题解,大致意思就是连续n天单调可以用动态规划的思想 你和一群强盗准备打劫银行.给你一个下标从 0 开始的整数数组 se ...