加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用Java8将Map >>转换为List

发布时间:2020-12-15 04:32:41 所属栏目:Java 来源:网络整理
导读:我正在尝试转换Map String,NavigableMap Long,Collection String进入List String Java 8. 我写了一些代码,但在中间卡住了一些. userTopics.values().stream().map( new FunctionNavigableMapLong,CollectionString,CollectionString() { @Override public Co
我正在尝试转换Map< String,NavigableMap< Long,Collection< String>>>进入List< String> Java 8.

我写了一些代码,但在中间卡住了一些.

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 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());

正如Holger指出的那样,这更整洁:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读