我正在努力找到解决这个简单问题的好方法。 例如,让我们说有三组(可能还有更多):
Set<Integer> A = [1,2,3,4,5,6]
Set<Integer> B = [2,4,6,8,10]
Set<Integer> C = [1,3,6,9]
现在,如何找到这个等式的答案:
(A or B) and (B or C)
。
基本上和和或是交集和联合。
所以答案就是一套。
上述操作的答案是:
[1,2,3,4,6,8,10]
我已经完成了找到两个集合的联合和交集的方法,但我陷入了等式中可能有多个操作的程度。 并且操作长度取决于用户输入。每次都可能不同
// intersection
private Set<Integer> intersection(Set setA, Set setB){
return (Set<Integer>) setA.stream()
.filter(setB::contains)
.collect(Collectors.toSet());
}
// union
private Set<Integer> union(Set setA, Set setB){
Set<Integer> result = new HashSet<Integer>(setA);
result.addAll(setB);
return result;
}
Stackoverflow中的所有方法都基于两组......