我已经习惯了 C#,IEnumerable<T>.SelectMany但发现自己使用 Google 的 Guava 库涉足了一些 Java 代码。番石榴中是否有等同于 SelectMany 的东西?示例:如果我有这样的流/映射结构collections
.stream()
.map(collection -> loadKeys(collection.getTenant(), collection.getGroup()))
.collect(GuavaCollectors.immutableSet());whereloadKeys返回类似的东西ImmutableSet<String>,这个函数会返回ImmutableSet<ImmutableSet<String>>,但我想把它们压平成一个ImmutableSet<String>最好的方法是什么?
1 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
您可以使用Stream::flatMap
方法:
collections .stream() .flatMap(collection -> loadKeys(collection.getTenant(), collection.getGroup()).stream()) .collect(ImmutableSet.toImmutableSet());
请注意,您得到了方法stream
外的loadKeys
结果。结果应该ImmutableSet<String>
假设loadKeys
返回一个集合。
添加回答
举报
0/150
提交
取消