在 Java 中的集合内加入(并集)集合
Joining (union) of Sets inside a Set in Java
我有一张地图,其中的值是整数集。我想做的是以最好的方式(只使用 Java API 会很棒)所有整数集的并集。
Map<Long, Set<Integer>> map;
目前我想的是循环遍历map的values(),手动添加到big Set中:
Set<Integer> bigSet = new HashSet<>();
Iterator<Set<Integer>> iter = map.values().iterator();
while(iter.hasNext())
bigSet.addAll(iter.next());
还有一个由地图支持的联盟集合会很棒。
不幸的是我坚持 Java 7.
一方面,您可以使用新的 Java 8 流畅界面
import static java.util.stream.Collectors.toSet;
Set<Integer> myUnion = map
.values()
.stream()
.flatMap(set -> set.stream())
.collect(toSet());
另一方面,如果您可以使用外部库,我建议您看看 Guava's SetMultimap。
我有一张地图,其中的值是整数集。我想做的是以最好的方式(只使用 Java API 会很棒)所有整数集的并集。
Map<Long, Set<Integer>> map;
目前我想的是循环遍历map的values(),手动添加到big Set中:
Set<Integer> bigSet = new HashSet<>();
Iterator<Set<Integer>> iter = map.values().iterator();
while(iter.hasNext())
bigSet.addAll(iter.next());
还有一个由地图支持的联盟集合会很棒。 不幸的是我坚持 Java 7.
一方面,您可以使用新的 Java 8 流畅界面
import static java.util.stream.Collectors.toSet;
Set<Integer> myUnion = map
.values()
.stream()
.flatMap(set -> set.stream())
.collect(toSet());
另一方面,如果您可以使用外部库,我建议您看看 Guava's SetMultimap。