转换Map< String,NavigableMap< Long,Collection< String>>>列出< String>使用Java8 [英] Convert Map<String, NavigableMap<Long, Collection<String>>> to List<String> using Java8

查看:310
本文介绍了转换Map< String,NavigableMap< Long,Collection< String>>>列出< String>使用Java8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将 Map< String,NavigableMap< Long,Collection< String>>> 转换为 List< String> Java 8。

I am trying to convert Map<String, NavigableMap<Long, Collection<String>>> into List<String> Java 8.

我写了一些代码,但在中间位置被卡住了。

I wrote some code but got stuck some where in mid.

userTopics.values().stream().map(
    new Function<NavigableMap<Long, Collection<String>>, Collection<String>>() {
        @Override
        public Collection<String> apply(NavigableMap<Long, Collection<String>> t) {
            return null;  //TODO
        }
    }
);


推荐答案

只需 flatMap s ** t

Just flatMap that s**t:

List<String> values = nestedMap.entrySet()
        .stream()
        .map(Map.Entry::getValue)
        .flatMap(m -> m.entrySet().stream())
        .map(Map.Entry::getValue)
        .flatMap(Collection::stream)
        .collect(toList());

as Holger 指出,这是更整洁:

As Holger points out, this is neater:

List<String> values = nestedMap.values()
        .stream()
        .flatMap(m -> m.values().stream())
        .flatMap(Collection::stream)
        .collect(toList());

这篇关于转换Map&lt; String,NavigableMap&lt; Long,Collection&lt; String&gt;&gt;&gt;列出&lt; String&gt;使用Java8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆