首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java 8中的Stream<Map<String、String>>到Set<String>值

java 8中的Stream<Map<String、String>>到Set<String>值
EN

Stack Overflow用户
提问于 2016-05-26 08:55:53
回答 2查看 1.4K关注 0票数 0

我有一个Map流,如何设置有Map的值?

在这里,我做了我的部分工作

代码语言:javascript
复制
Set<String> jcfTargetTables = measure.getConditionMap().values()
        .stream()
        .map(Condition::getJoinConditionFilter)
        .filter(jcf -> jcf!=null)
        .map(JoinConditionFilter::getTableMapping);

最后一行给我一个Stream<Map<String,String>>,我如何继续获得设置,也就是Map的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-26 09:00:55

当您在上一次映射中有了映射时,剩下的就是将其转换为这些映射中的值流,然后将它们作为一个集合收集:

代码语言:javascript
复制
Set<String> jcfTargetTables = measure.getConditionMap().values()
    .stream()
    .map(Condition::getJoinConditionFilter)
    .filter(jcf -> jcf!=null)
    .map(JoinConditionFilter::getTableMapping)
    .flatMap(map -> map.values().stream()).collect(Collectors.toSet());;
票数 6
EN

Stack Overflow用户

发布于 2016-05-26 09:00:41

我不确定您目前拥有的所有步骤是否都是必要的,但是在现有步骤的基础上,可以使用flatMap获取所有值的Stream

代码语言:javascript
复制
Set<String> jcfTargetTables = measure.getConditionMap().values()
    .stream()
    .map(Condition::getJoinConditionFilter)
    .filter(jcf -> jcf!=null)
    .map(JoinConditionFilter::getTableMapping)
    .flatMap(m->m.values().stream())
    .collect(Collectors.toSet());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37456067

复制
相关文章

相似问题

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