Gia*_*ini 2 java iterator set java-7 set-union
我有一张地图,其中的值是整数集。我想要做的是以最好的方式获得所有整数集的联合(仅使用 Java API 会很棒)。
Map<Long, Set<Integer>> map;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的想法是遍历地图的 values() 并手动添加到大集合中:
Set<Integer> bigSet = new HashSet<>();
Iterator<Set<Integer>> iter = map.values().iterator();
while(iter.hasNext())
bigSet.addAll(iter.next());
Run Code Online (Sandbox Code Playgroud)
此外,由地图支持的工会收藏也很棒。不幸的是,我被 Java 7 困住了。
一方面,您可以使用新的 Java 8 流畅界面
import static java.util.stream.Collectors.toSet;
Set<Integer> myUnion = map
.values()
.stream()
.flatMap(set -> set.stream())
.collect(toSet());
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您可以使用外部库,我建议您查看Guava 的 SetMultimap。
| 归档时间: |
|
| 查看次数: |
2663 次 |
| 最近记录: |