我有一个Map流,如何设置有Map的值?
在这里,我做了我的部分工作
Set<String> jcfTargetTables = measure.getConditionMap().values()
.stream()
.map(Condition::getJoinConditionFilter)
.filter(jcf -> jcf!=null)
.map(JoinConditionFilter::getTableMapping);最后一行给我一个Stream<Map<String,String>>,我如何继续获得设置,也就是Map的值?
发布于 2016-05-26 09:00:55
当您在上一次映射中有了映射时,剩下的就是将其转换为这些映射中的值流,然后将它们作为一个集合收集:
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());;发布于 2016-05-26 09:00:41
我不确定您目前拥有的所有步骤是否都是必要的,但是在现有步骤的基础上,可以使用flatMap获取所有值的Stream:
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());https://stackoverflow.com/questions/37456067
复制相似问题