李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
一、Stream流概念介绍
Leefs
2021-05-11 PM
2036℃
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** 一个数据源(如:集合、数组),获取一个流 + **中间操作** 一个中间操作链,对数据源的数据进行处理 + **终止操作(终端操作)** 一个终止操作,执行中间操作链。并产生结果 **示意图:** ![01.Stream流简单介绍01.png](https://lilinchao.com/usr/uploads/2021/05/663113711.png) 附: [参考文档链接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
工具
31
其它
25
GO
47
NLP
4
标签云
Quartz
栈
工具
二叉树
Elastisearch
Yarn
排序
队列
Golang
Sentinel
高并发
gorm
Scala
Shiro
Java编程思想
Stream流
Netty
JavaScript
随笔
Docker
Spark
数据结构
Tomcat
DataWarehouse
容器深入研究
Spring
Typora
Spark SQL
Beego
Elasticsearch
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭