首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Guava连接ImmutableSet

使用Guava连接ImmutableSet
EN

Stack Overflow用户
提问于 2019-07-10 03:23:29
回答 1查看 176关注 0票数 1

我习惯了C#,在那里我们有IEnumerable<T>.SelectMany,但我发现自己在使用谷歌的Guava库来涉足一些Java代码。在Guava中有没有等同于SelectMany的东西?

示例:如果我有一个流/映射结构,如下所示

代码语言:javascript
复制
collections
            .stream()
            .map(collection -> loadKeys(collection.getTenant(), collection.getGroup()))
            .collect(GuavaCollectors.immutableSet());

loadKeys返回类似于ImmutableSet<String>的内容时,此函数将返回ImmutableSet<ImmutableSet<String>>,但我只想将它们展平为一个ImmutableSet<String>

那么最好的方法是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 03:37:37

您可以使用Stream::flatMap方法:

代码语言:javascript
复制
collections
        .stream()
        .flatMap(collection -> loadKeys(collection.getTenant(), collection.getGroup()).stream())
        .collect(ImmutableSet.toImmutableSet());

请注意,您从loadKeys方法stream中获得了结果。假设loadKeys返回一个Set,那么结果应该是ImmutableSet<String>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56959363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档