Java8 Stream使用flatMap合并List 您所在的位置:网站首页 java多个list合并成一个 Java8 Stream使用flatMap合并List

Java8 Stream使用flatMap合并List

2024-05-22 12:46| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

之前也写过很多篇关于Java8使用的文章了,但是回顾一下,好像还没介绍过Java8 Stream的flatMap操作,昨天刚好在工作中遇到一个场景,发现flatMap简直太方便了,这里总结一下flatMap的常规使用。附带讲一下,使用Java8实现集合的并、交、差操作,其实之前也讲过一种使用Guava的实现方式,具体请参考Guava集合工具

flatMap

首先看一下一种场景,存在一个Map,ListContainer中存在一个List成员变量。有这样一个需求,讲Map中values中所有的List组合成一个List。我们也许会这样操作:

代码语言:javascript复制List resultAClassList = Lists.newArrayList(); for (ListContainer tmp : map.values()){ resultAClassList.addAll(tmp.getLst()); }

这还是只存在一层List的情况,如果存在多层,for还需要嵌套,使用起来很不方便。后来查到,Java8 Stream的flatMap操作可以很好地适用这种场景,首先看一下flatMap方法定义:

代码语言:javascript复制 Stream flatMap(Function


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有