在公司发现集合的运用非常常见,而且就是把数据传来传去,话不多说,接下来就学习一下CollectionUtils,这不是jdk自带的类,是存在于apache下的,jar包下载地址
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.3</version>
</dependency>
首先学习这个类之前,先把数学集合中的知识学习一下,学完之后,我才发现为什么在编程语言中叫做集合了,
它几乎和数学中的集合的概念差不太多。现在才惊醒,我太难了。
数学中的概念:
1.交集:由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection),记作A∩B
2.并集:A和B并集是由所有A的元素和所有B的元素,而没有其他元素的集合(集合中没有重复的元素)A和B的并集通常写作 "A∪B",
3.差集:
4.对称差集: 这一部分就是交集外的部分
5.补集:
百度百科的文字太繁琐了,直接用例子说一下吧
设有两个集合A:{1,2,3} B:{3,4,5}
1. A和B的交集:3
2. A和B的并集:1,2,3,4,5 (注意:并集不能有重复的元素)
3. A相对于B的差集: 1,2
4. B相对于A的差集: 4,5
5. A和B的对称差集: 1,2,4,5
有了上面的知识,学习CollectionUtils,易如反掌
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class Test1 {
public static void main(String[] args) {
/**
* 集合A: 1,2,3
* 集合B: 3,4,5
*/
//交集,并集, 差集
List<Integer> A = new ArrayList<Integer>(Arrays.asList(1,2,3));
List<Integer> B = new ArrayList<Integer>(Arrays.asList(3,4,5));
System.out.println("A和B的交集:"+CollectionUtils.intersection(A, B));//3
System.out.println("A和B的并集:"+CollectionUtils.union(A, B));//1,2,3,4,5
System.out.println("A和B的差集:"+CollectionUtils.subtract(A, B));//1,2
System.out.println("B和A的差集:"+CollectionUtils.subtract(B, A));//4,5
System.out.println("A和B的对称差集:"+CollectionUtils.disjunction(A, B));//1,2,4,5
}
}
CollectionUtils还有其他实用的方法,就没有在这里一一展开了
参考博文: https://www.cnblogs.com/qdhxhz/p/10787130.html