栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

stream流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

stream流

什么是stream流,

stream流是java1.8之后开启的,主要是为了解放程序员操作集合时的生产力,主要是lambda表达式提供了很大的帮助。

它可以实现对集合(是一种静态结构,存储在内存当中,而stream是通过cpu来实现计算的(并不会存储结构))的复杂操作,过滤、排序、映射等。

在操作流之前的文字是帮助理解的,可能有点混乱,可以选择不看,因为没那么重要

我们还可以将stream理解为管道,管道里面的操作主要是对流进行过滤、分组、收集、归约这类操作,最后有一个终止管道装有最终结果。

stream流也好像是一个高级的迭代器,但是每次只能遍历一次,就有点像江水,我们只能对流进行过滤、筛选等一些操作,最终还是需要使用终端操作将最终结果进行反馈。

操作流 中间操作:可以有多个、每次返回一个新的流,可以进行链式操作。 终端操作:每次流只能使用一个,每次执行完成之后,这个流也就用光了,无法执行下一个操作,因此只能放在最后。 stream流的特性

1、不存储数据,而是按照特定的规则对数据进行计数。
2、不改变数据源,通常情况下会产生一个新的集合。
3、stream具有延迟执行的特性,只有调用终端操作时,中间操作才会执行
4、stream流不可复用,对一个已经进行过终端操作的流再次调用,会抛出异常。

延迟执行

stream在没有遇到终端操作之前,不会执行流中的任何一个中间操作,不会对流进行处理;(题外话,感觉像是stream中的终端操作中有一个启动流的操作,有点感觉像是类似于线程中的start这个方法)

创建流的方式三种
	List list = new ArrayList<>();
	
	Stream stream = list.stream();
	
	Stream parallelStream = list.parallelStream();
	
	
	String[] array = {};
	Stream arraysStream = Arrays.stream(array);
	
	
	Stream streamOf = Stream.of(1, 2, 3);
中间操作函数:


例子:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号