Java 流 - Java 流的介绍
程序员文章站
2022-03-27 17:18:02
...
流是支持串行和并行聚合操作的数据值的序列。
我们更经常在SQL中使用聚合函数。例如,我们可以对一个月或一年的所有销售数字求和。
我们还可以对给定范围求最大值。
一个聚合操作用于项目的一个列表上,并产生一个单一的值。
对流进行聚集操作的结果可能是一个原始值,对象或空流。正如SQL,我们可以计算出整数流中所有整数的总和。
集合 对 流 Collections vs Streams
Java集合专注于如何存储数据元素以便于高效访问。
Java流专注于在一个数据源的数据元素上的聚合操作。
流的特征 Streams Features
Java流有其自身的特征。
无存储 No Storage
Java流没有存储。
集合是在内存中存储其所有元素的数据结构。
流没有存储。流按需从数据源获取元素,并将它们传递给操作的管道进行处理。
对于一个集合,我们关注其存储,即如何存储数据元素,如何访问数据元素。
对于一个流,我们着眼于操作,例如,如何对其求和。
无限之流 Infinite Streams
集合不能表示一组无限的元素,而流可以。
流可以从一个数据源获取元素。数据源可以是一个集合,一个生成数据的函数,一个I/O通道,等等。
流可以从生成无限数量的元素的一个函数中提取数据。
不可重用 Not Reusable
流是不可重用的。
流不能在调用终端操作后重复使用。
对相同数据源的相同元素执行不同的计算,我们必须重新创建流管道。
在重复使用的情况下,流可能会抛出一个IllegalStateException。
来源:http://www.java2s.com/Tutorials/Java/Java_Stream/index.htm
我们更经常在SQL中使用聚合函数。例如,我们可以对一个月或一年的所有销售数字求和。
我们还可以对给定范围求最大值。
一个聚合操作用于项目的一个列表上,并产生一个单一的值。
对流进行聚集操作的结果可能是一个原始值,对象或空流。正如SQL,我们可以计算出整数流中所有整数的总和。
集合 对 流 Collections vs Streams
Java集合专注于如何存储数据元素以便于高效访问。
Java流专注于在一个数据源的数据元素上的聚合操作。
流的特征 Streams Features
Java流有其自身的特征。
无存储 No Storage
Java流没有存储。
集合是在内存中存储其所有元素的数据结构。
流没有存储。流按需从数据源获取元素,并将它们传递给操作的管道进行处理。
对于一个集合,我们关注其存储,即如何存储数据元素,如何访问数据元素。
对于一个流,我们着眼于操作,例如,如何对其求和。
无限之流 Infinite Streams
集合不能表示一组无限的元素,而流可以。
流可以从一个数据源获取元素。数据源可以是一个集合,一个生成数据的函数,一个I/O通道,等等。
流可以从生成无限数量的元素的一个函数中提取数据。
不可重用 Not Reusable
流是不可重用的。
流不能在调用终端操作后重复使用。
对相同数据源的相同元素执行不同的计算,我们必须重新创建流管道。
在重复使用的情况下,流可能会抛出一个IllegalStateException。
来源:http://www.java2s.com/Tutorials/Java/Java_Stream/index.htm