李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
一、Stream流概念介绍
Leefs
2021-05-11 PM
3369℃
0条
# 01.Stream流概念介绍 ### 前言 题外话,如果看过之前推送的Scala教程或者学习过Lambda 表达式,学习Stream流将变的异常简单。 ### 一、Stream流概述 Stream流中的【流】即流水线,不是I/O流。 **1.1 概念介绍** + Stream API借助于同样新出现的Lambda 表达式, 极大的提高编程效率和程序可读性. + Stream 提供串行和并行两种模式进行汇聚操作, 并发模式能够充分利用多核处理器的优势, 使用fork/join 并行来拆分任务和加速处理过程. **1.2 作用** + Java 8 中的Stream是对集合 (Collection) 对象功能的增强, 他专注于对集合对象进行各种非常便利,高效的聚合操作(aggregate operation), 或者大批量数据操作 (bulk data operation). + 通常编写并行代码很难而且容易出错, 但使用Stream API无需编写一行多线程的代码, 就可以很方便地写出高性能的并发代码. **1.3 特点** > 1. 只能遍历一次 可以把流想象成一条流水线,流水线的源头是数据源(一个集合),数据源中的元素依次被输送到流水线上,可以在流水线上对元素进行各种操作。一旦元素走到了流水线的另一头,那么这些元素就被“消费掉了”,就无法再对这个流进行操作。当然,可以从数据源那里再获得一个新的流重新遍历一遍。 > 2. 采用内部迭代方式 若要对集合进行处理,则需要手写处理代码,这就叫做外部迭代。而要对流进行处理,只需告诉流需要什么结果,处理过程由流自行完成,这就称为内部迭代。 **注意** + Stream自己不会存储元素 + Stream不会改变源对象。相反,他会返回一个持有结果的新Stream + Stream操作是延迟执行的。意味着他会等到需要结果的时候才执行 ### 二、Stream的操作过程 + **创建Stream** 一个数据源(如:集合、数组),获取一个流 + **中间操作** 一个中间操作链,对数据源的数据进行处理 + **终止操作(终端操作)** 一个终止操作,执行中间操作链。并产生结果 **示意图:**  附: [参考文档链接1](https://blog.csdn.net/u010425776/article/details/52344425) [参考文档链接2](https://www.jianshu.com/p/c57ac950b3e0)
标签:
Stream流
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1243.html
上一篇
Scala栈练习
下一篇
二、Stream流操作API
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
35
其它
25
GO
48
NLP
8
标签云
随笔
MyBatis
Kibana
JavaWeb
GET和POST
Linux
RSA加解密
锁
序列化和反序列化
哈希表
Scala
正则表达式
递归
ajax
Yarn
Prometheus
Jenkins
Java
高并发
DataX
散列
Ubuntu
人工智能
Elastisearch
Http
SpringCloud
Spark
前端
Hbase
MyBatisX
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞