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

相关推荐
Wang's Blog3 分钟前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
apcipot_rain1 小时前
C++转Java日记(03)
java·开发语言·c++
皮皮林5511 小时前
Java实现微信扫码登录
java
Yyyyyy~3 小时前
【Java】Day4Web基础知识
java·spring boot
灿飞屋5 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
NE_STOP5 小时前
Spring AI Alibaba - MCP入门
java
nice_lcj5205 小时前
【从零理解 Spring AI · 07】对话记忆:让模型记住上一句说了什么
java·spring ai·ai应用开发·chatmemory·对话记忆
SL_staff6 小时前
制造业交付崩盘?用跨部门节点协同计划打通销售、生产与质量链路
java·开源·产品
文丑颜不良啊7 小时前
LeetCode2261~2280题目解析
java·leetcode
SL_staff7 小时前
告别规则黑盒:JVS-Rules 在金融风控中的可视化决策编排实践
java·产品·全栈