Java 8 Stream(二、Stream操作和无限流)

本文详细介绍了Java 8 Stream的操作,包括数据源、中间操作(如filter、map)和终端操作(如forEach、collect)。强调中间操作的懒执行特性以及无限流的使用,通过Supplier和UnaryOperator展示了无限流生成UUID和连续数字的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上文我们对Stream做了简单介绍并给出了创建方式,没看过的同学请出门左转 Java 8 Stream(一、Stream简介及创建方式)


一、Stream操作

Stream操作分为中间操作和终端操作。每个Stream操作由数据源、零个或多个中间操作和一个终端操作组成。

(一)数据源

上文中提到的集合、数组和无限序列生成器(函数式接口)等都可作为数据源。

(二)中间操作

所有中间操作都是懒执行,即只有在终端操作执行时才会执行,执行中间操作实际上并不执行任何操作,而是创建一个新的流,当遍历该流时,它包含与给定谓词匹配的原始流的元素。因此在执行终端操作之前,流的遍历不会开始。
这是非常重要的特性,对于无限流尤其重要——因为它允许我们创建只有在调用终端操作时才实际调用的流。
常用的中间操作有filter()、map()、flatMap()等。

(三)终端操作

终端操作可以遍历流生成最终结果,执行终端操作即可认为消费管道,上文提到Stream的特点只可消费一次,故该管道已不能再被使用。
几乎在所有情况下,终端操作都是立即执行的,这也是无限流的重要基础——我们是否可以限制无限流,例如limit()。
常用的终端操作有forEach()、toArray()、collect()等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值