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.参考

相关推荐
念何架构之路14 分钟前
beego总体架构与工程结构
java·架构·beego
典典分享指南22 分钟前
用飞书多维表格搭建内容管理看板
java·python·r语言·composer·symfony
东坡白菜1 小时前
windows下使用Trae启动java项目遇到的乱码问题
java
SQL-First布道者2 小时前
⚡Spring JDBC 完整体系 · 第 10 集 · 手搓 `BaseCondition`
java·spring boot·后端·spring·mybatis·spring jdbc
珍珠先生2 小时前
第9章 JDK 11 新特性:var 与便捷新 API
java
hoho_122 小时前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
冬夜戏雪2 小时前
笔试的Scanner in Scanner out
java·开发语言
南城以南溫暖如初1472 小时前
社交裂变商城系统设计与实战开发指南
java·spring boot·mysql·vue·mybatis
Zane1994122 小时前
HashSet、TreeSet、LinkedHashSet:底层都是“套壳“
java·开发语言
xiaoqiMikko2 小时前
Spring 官方给 5.3 线开了三个修复版,Maven Central 上一个都没有
java·spring boot