【发布时间】:2016-01-23 12:45:31
【问题描述】:
我有一套这样的:
Set<Set<Node>> NestedSet = new HashSet<Set<Node>>();
[[Node[0], Node[1], Node[2]], [Node[0], Node[2], Node[6]], [Node[3], Node[4], Node[5]]]
我想比较和合并嵌套集中的集合。 [0,1,2] 和 [0,2,6] 具有共同的元素。所以应该将它们合并成0,1,2,6。
输出应该是这样的:
[[Node[0], Node[1], Node[2], Node[6]], [Node[3], Node[4], Node[5]]]
有什么有效的方法吗?
【问题讨论】:
-
您可以使用github.com/google/guava 在两个嵌套集之间进行交集,如果交集 > 0 则合并这两个集。当然这不是最有效的方法,因为您必须在最坏的情况下比较 O(n^2) 个元素。
标签: java lambda set guava lambdaj