hutool交并集
Hutool 工具包中提供了用于计算集合(Set)的交集、并集和差集的方法。这些方法位于 cn.hutool.core.collection.CollUtil 类中,使用起来非常方便。
以下是相关方法的简单介绍:
-
交集(Intersection):
CollUtil.intersection(Set<T> set1, Set<T> set2)
- 返回一个新集合,其中包含同时存在于
set1
和set2
中的元素。
- 返回一个新集合,其中包含同时存在于
-
并集(Union):
CollUtil.union(Set<T> set1, Set<T> set2)
- 返回一个新集合,其中包含
set1
和set2
的所有元素,并自动去重。
- 返回一个新集合,其中包含
-
差集(Difference):
CollUtil.disjunction(Set<T> set1, Set<T> set2)
- 返回一个新集合,其中包含只存在于
set1
或set2
中的元素,也就是两个集合的对称差。 - 如果你想要计算
set1
相对于set2
的差集(即在set1
中但不在set2
中的元素),可以使用CollUtil.subtract(Set<T> set1, Set<T> set2)
方法。
- 返回一个新集合,其中包含只存在于
示例代码
下面是一个简单的 Java 示例,演示了如何使用这些方法:
import cn.hutool.core.collection.CollUtil;
import java.util.HashSet;
import java.util.Set;public class HutoolSetOperationsExample {public static void main(String[] args) {Set<String> setA = new HashSet<>();setA.add("a");setA.add("b");setA.add("c");Set<String> setB = new HashSet<>();setB.add("c");setB.add("d");setB.add("e");// 交集Set<String> intersection = CollUtil.intersection(setA, setB);System.out.println("交集 (a,b,c) & (c,d,e): " + intersection); // 输出: [c]// 并集Set<String> union = CollUtil.union(setA, setB);System.out.println("并集 (a,b,c) U (c,d,e): " + union); // 输出: [a, b, c, d, e]// 对称差集Set<String> disjunction = CollUtil.disjunction(setA, setB);System.out.println("对称差集 (a,b,c) ^ (c,d,e): " + disjunction); // 输出: [a, b, d, e]// 差集 (在 A 中但不在 B 中的元素)Set<String> difference = CollUtil.subtract(setA, setB);System.out.println("差集 (a,b,c) - (c,d,e): " + difference); // 输出: [a, b]}
}
使用 Hutool 的这些方法,你可以更简洁地处理集合运算,而不必自己手动遍历和判断。