Stream流

Stream流是Java8引入的新特性,它提供了声明性处理集合的方式。Stream不存储数据,而是按规则计算并输出结果,且不会改变数据源。操作分为中间操作和终端操作,中间操作延迟执行,直到终端操作时才计算。Stream一次消费后不可复用,适用于函数式编程,简化了集合处理,支持并行操作,提高了效率。Stream可视为数据源的视图,类似SQL的视图或工厂流水线。
摘要由CSDN通过智能技术生成

Stream流介绍:

1.stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果;

2.stream不会改变数据源,通常情况下会产生一个新的集合;

3.stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。

4.对stream操作分为终端操作和中间操作,那么这两者分别代表什么呢?

终端操作:会消费流,这种操作会产生一个结果的,如果一个流被消费过了,那它就不能被重用的。

中间操作:中间操作会产生另一个流。因此中间操作可以用来创建执行一系列动作的管道。一个特别需要注意的点是:中间操作不是立即发生的。相反,当在中间操作创建的新流上执行完终端操作后,中间操作指定的操作才会发生。所以中间操作是延迟发生的,中间操作的延迟行为主要是让流API能够更加高效地执行。

5.stream不可复用,对一个已经进行过终端操作的流再次调用,会抛出异常。

概述:

stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中,能 让代码更加简洁,极大地简化了集合的处理操作,提高了开发的效率和生产力。

同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。在Stream中的操作每一次都会产生新的流,内部不会像普通集合操作一样立刻获取值,而是 惰性取值 ,只有等到用户真正需要结果的时候才会执行。 并且对于现在调用的方法,本身都是一种高层次构件,与线程模型无关。因此在并行使用中,开发者们无需再去操 心线程和锁了。Stream内部都已经做好了 。

关于对Stream流的理解,你可以把他当成工厂中的流水线,每个stream流的操作过程遵循着创建 -->操作 -->获取结果的过程,就像流水线上的节点一样组成一个个链条。除此之外你还可以把他理解成sql的视图,集合就相当于数据表中的数据,获取stream流的过程就是确定数据表的属性和元数据的过程,元数据的每一个元素就是表中的数据,对stream流进行操作的过程就是通过sql对这些数据进行查找、过滤、组合、计算、操作、分组等过程,获取结果就是sql执行完毕之后获取的结果视图一样,深入理解stream流可以让我们使用更加简洁的代码获取自己想要的数据。

————————————————

版权声明:本文为CSDN博主「枫原万叶6」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_69323488/article/details/129033591

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值