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

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


一、Stream操作

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

(一)数据源

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

(二)中间操作

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

(三)终端操作

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值