将<Map <String,String >>流<java>中的Set <String>值

Aje*_*mar 0 java java-8 java-stream

我有一个Map流我怎么能得到具有Map值的Set?

我在这里部分地做了什么

Set<String> jcfTargetTables = measure.getConditionMap().values()
        .stream()
        .map(Condition::getJoinConditionFilter)
        .filter(jcf -> jcf!=null)
        .map(JoinConditionFilter::getTableMapping);
Run Code Online (Sandbox Code Playgroud)

最后一行给了我一个Stream<Map<String,String>>,我如何继续获取Set是Map的值?

ern*_*t_k 6

由于您在上一次映射中有地图,所以剩下的就是将它转换为这些地图中的值流,然后将它们收集为一组:

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());;
Run Code Online (Sandbox Code Playgroud)