31、Java Stream API 操作详解

Java Stream API 操作详解

1. 扁平化流(Flattening Streams)

在流操作中, map 操作实现的是一对一映射,即输入流的每个元素对应输出流的一个元素。而 Java 的 Streams API 还支持通过 flatMap 操作实现一对多映射,其工作流程如下:
1. 接收一个输入流,使用映射函数生成输出流。
2. 映射函数从输入流中取出一个元素,并将该元素映射为一个流。输入元素的类型和映射流中的元素类型可能不同,这一步会生成一个流的流。假设输入流是 Stream<T> ,映射流是 Stream<Stream<R>> ,其中 T R 可以相同也可以不同。
3. 最后将输出的流的流扁平化,生成一个普通流,即将 Stream<Stream<R>> 转换为 Stream<R>

下面通过具体例子来理解 flatMap 操作。假设有一个包含数字 1、2、3 的流,我们希望生成一个包含这些数字及其平方的流,即 1、1、2、4、3、9。

错误示例
Stream.of(1, 2, 3)
      .map(n -> Stream.of(n, n * n))
      .forEach(System.out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值