Java8 - flatMap() 介绍

1.flatMap() 的作用与用法

在 Java8 中引入了 SteamAPI,其中有一个功能是 flatMap()。它的作用是将一个二维数组处理成一维数组,或者说是将一个 2 级 Stream 处理成 1 级 Stream。

举例来说,下面的二维数组可以通过 flatMap() 处理成一维数组。

java 复制代码
// 二维数据
Integer[][] twoDimArr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 一维数据
Integer[] oneDimArr = {1,2,3,4,5,6,7,8,9}

处理过程为:

java 复制代码
Integer[][] twoDimArr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
Integer[] onewDimArr = Arrays.stream(twoDimArr).flatMap(Arrays::stream).toArray(Integer[]::new);

这一过程也可以理解为将 2 级的流 Stream<Integer[]>展平成了 1 级的流 Stream<Integer>

从语法上来看,我们在 flatMap 中要写的是一个 lambda 表达式(或上图中的方法引用),而这个表达式要做的是将一维数组(比如 Integer[])转成流形式。

更多的例子可以参考 Java8 - Streams flatMap()

2.参考

相关推荐
SmartBrain11 小时前
AI全栈开发(SDD):慢病管理系统工程级设计
java·大数据·开发语言·人工智能·架构·aigc
梦想CAD控件11 小时前
网页端对DWG图纸进行预览与批注(CAD轻量化)
java·前端·javascript
老毛肚11 小时前
Spring boot 特性和自写Reids组件
java·spring boot·后端
极光代码工作室12 小时前
基于SpringBoot的课程管理系统
java·springboot·web开发·后端开发
JustNow_Man12 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
武子康12 小时前
Java-05 深入浅出 MyBatis动态SQL与参数拼接完全指南
java·spring boot·后端
过期动态12 小时前
【LeetCode 热题 100】字母异位分组
java·算法·leetcode·职场和发展·哈希算法
辰海Coding12 小时前
MiniSpring框架学习-为什么一个请求访问 /helloworld,最后能调用到某个 Controller 方法?原始 MVC实现
java·学习·程序人生·spring·mvc
驭渊的小故事13 小时前
多线程01(线程状态和线程的sleep,线程终止(Interrupt)的小关联)
java·jvm·算法
山甫aa13 小时前
Java的包和import
java·开发语言