如何在Java中找到多个集合的联合和交集?

时间:2017-03-22 13:40:08

标签: java java-8 set

我正在努力找到解决这个简单问题的好方法。 例如,让我们说有三组(可能还有更多):

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中的所有方法都基于两组......

0 个答案:

没有答案