Package org.miaixz.bus.core.center
Class CollectionOperation<E>
java.lang.Object
org.miaixz.bus.core.center.CollectionOperation<E>
- Type Parameters:
E- 元素类型
集合运算,包括:
- 求集合的并集
- 求集合的唯一并集
- 求集合的完全并集
- 求集合的交集
- 求集合的差集
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription多个集合的差集 针对一个集合中存在多个相同元素的情况,计算每两个集合中此元素的个数,保留两个集合中此元素个数差的个数 例如:多个集合的交集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c],此结果中只保留了两个c多个集合的唯一交集 针对一个集合中存在多个相同元素的情况,只保留一个 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c],此结果中只保留了一个cstatic <E> CollectionOperation<E> of(Collection<? extends E>... colls) 创建运算对象subtract()计算集合的单差集,即只返回【集合1】中有,但是【集合2】、【集合3】...中没有的元素,例如:union()多个集合的并集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c],此结果中只保留了三个cunionAll()多个集合的完全并集,类似于SQL中的“UNION ALL” 针对一个集合中存在多个相同元素的情况,保留全部元素 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c, a, b, c, c]多个集合的非重复并集,类似于SQL中的“UNION DISTINCT” 针对一个集合中存在多个相同元素的情况,只保留一个 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c],此结果中只保留了一个c
-
Constructor Details
-
CollectionOperation
构造- Parameters:
colls- 集合数组
-
-
Method Details
-
of
创建运算对象- Type Parameters:
E- 元素类型- Parameters:
colls- 集合列表- Returns:
- CollectionOperation
-
union
多个集合的并集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c],此结果中只保留了三个c- Returns:
- 并集的集合,返回
ArrayList
-
unionDistinct
多个集合的非重复并集,类似于SQL中的“UNION DISTINCT” 针对一个集合中存在多个相同元素的情况,只保留一个 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c],此结果中只保留了一个c- Returns:
- 并集的集合,返回
LinkedHashSet
-
unionAll
多个集合的完全并集,类似于SQL中的“UNION ALL” 针对一个集合中存在多个相同元素的情况,保留全部元素 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c, a, b, c, c]- Returns:
- 并集的集合,返回
ArrayList
-
intersection
多个集合的交集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c],此结果中只保留了两个c- Returns:
- 交集的集合,返回
ArrayList
-
intersectionDistinct
多个集合的唯一交集 针对一个集合中存在多个相同元素的情况,只保留一个 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c],此结果中只保留了一个c- Returns:
- 唯一交集的集合,返回
LinkedHashSet
-
disjunction
多个集合的差集 针对一个集合中存在多个相同元素的情况,计算每两个集合中此元素的个数,保留两个集合中此元素个数差的个数 例如:disjunction([a, b, c, c, c], [a, b, c, c]) - [c] disjunction([a, b], []) - [a, b] disjunction([a, b, c], [b, c, d]) - [a, d]任意一个集合为空,返回另一个集合 两个集合无差集则返回空集合- Returns:
- 差集的集合,返回
ArrayList
-
subtract
计算集合的单差集,即只返回【集合1】中有,但是【集合2】、【集合3】...中没有的元素,例如:subtract([1,2,3,4],[2,3,4,5]) - [1]- Returns:
- 单差集的List
-