您的位置 首页 java

「Java」求并集、交集、差集、交补集、笛卡尔集的几种方法

相信朋友们在 程序开发 过程中,或多或少的,都会用到集合相关的运算,如:求集合的并集、交集、差集等。今天我们就给大家介绍下 Java 中常用的几种求并集、交集、 差集 、交 补集 、笛卡尔集的方法。

文章中介绍的几种集合运算,主要是依赖 JDK 里的相关方法,以及 Apache 的commons-collections4库和Google的guava库中的相关方法。Apache和Google的库依赖如下:

并 集

并集是求两个集合里的所有元素的总和,如:集合1为:[1, 2],集合2为:[3, 4],求并集后的结果为:[1, 2, 3, 4]。求并集的常用方法如下:

交 集

交集是求两个集合中共有的元素,如:集合1为:[1, 2],集合2为:[1, 3],求交集后的结果为:[1],求交集的常用方法如下:

差 集

差集是求一个集合中排除掉另一个集合中的元素后剩下的元素(注意:集合1差集合2和集合2差集合1的结果可能是不一样的),如:集合1为:[1, 2],集合2为:[1, 3],集合1差集合2的结果为:[2],集合2差集合1的结果为:[3]。求差集的常用方法如下:

交补集

交补集是求两个集合互为不一样的元素,可以理解为求两个集合之间并集和交集的补集。如:集合1为:[1, 2],集合2为:[1, 3],求交补集的结果为:[2, 3] 。求交补集的常用方法如下:

笛卡尔积

笛卡尔积是求集合之间每个元素一一组合而成的集合,如:集合1为:[1, 2],集合2为:[1, 3],求笛卡尔集的结果为:[[1, 1], [1, 3], [2, 1], [2, 3]] 。求笛卡尔集的常用方法如下:

以上罗列的各种方法,都能满足计算的要求,具体的不同在于:有的方法是直接把计算结果更新到入参对象里,返回值为表示入参对象是否有变更的一个 布尔值 ;有的方法是不修改入参对象,而是把计算结果作为新对象返回。选择使用哪个方法,主要是看代码上下文的情况以及自己的一些编码风格。

最后,需要提一下的是,本文所举例子的集合里存放的对象都是 Integer ,但是在具体的代码里集合里存放的可能是其他自定义类的对象,那就需要大家注意自定义类需要覆写 hashCode ()和equals()方法,因为很多集合运算都是依赖这两个方法的返回值的,如果不正确覆写,可能会导致计算结果的错误。

—— The End ——

文章来源:智云一二三科技

文章标题:「Java」求并集、交集、差集、交补集、笛卡尔集的几种方法

文章地址:https://www.zhihuclub.com/200654.shtml

关于作者: 智云科技

热门文章

网站地图