- 类型参数:
-
T
- 流元素的类型 -
S
- 实现BaseStream
的流的类型
- 所有超接口:
-
AutoCloseable
- 所有已知子接口:
-
DoubleStream
,IntStream
,LongStream
,Stream<T>
流的基本接口,支持顺序和并行聚合操作的元素序列。以下示例演示了使用流类型
Stream
和IntStream
进行聚合操作,计算红色小部件的重量总和:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
有关流、流操作、流管道和并行性的更多规范,请参阅Stream
的类文档和java.util.stream的包文档,这些规范控制所有流类型的行为。
- 自Java版本:
- 1.8
- 另请参见:
-
Method Details
-
iterator
返回此流的元素的迭代器。这是一个终端操作。
- API注释:
- 此操作作为一种“逃生口”提供,以便在现有操作不足以完成任务时启用任意客户控制的管道遍历。
- 返回:
- 此流的元素迭代器
-
spliterator
Spliterator<T> spliterator()返回此流的元素的分割迭代器。这是一个终端操作。
- API注释:
-
此操作作为一种“逃生口”提供,以便在现有操作不足以完成任务时启用任意客户控制的管道遍历。
返回的分割迭代器应报告从流管道派生的特征集(即从流源分割迭代器和中间操作派生的特征)。实现可能报告这些特征的子集。例如,对于某些或所有可能的流管道来说,计算整个特征集可能太昂贵。
- 返回:
- 此流的元素分割迭代器
-
isParallel
boolean isParallel()返回此流是否在执行终端操作时会并行执行。在调用终端流操作方法后调用此方法可能导致结果不可预测。- 返回:
-
如果执行时此流将并行执行,则返回
true
-
sequential
S sequential()返回等效的顺序流。可能返回自身,因为流已经是顺序的,或者因为底层流状态已被修改为顺序。这是一个中间操作。
- 返回:
- 一个顺序流
-
parallel
S parallel()返回等效的并行流。可能返回自身,因为流已经是并行的,或者因为底层流状态已被修改为并行。这是一个中间操作。
- 返回:
- 一个并行流
-
unordered
S unordered()返回等效的无序流。可能返回自身,因为流已经是无序的,或者因为底层流状态已被修改为无序。这是一个中间操作。
- 返回:
- 一个无序流
-
onClose
返回具有额外关闭处理程序的等效流。当在流上调用close()
方法时,将运行所有关闭处理程序,并按添加顺序执行。即使较早的关闭处理程序抛出异常,所有关闭处理程序也会运行。如果任何关闭处理程序抛出异常,则将第一个抛出的异常传递给close()
的调用者,并将任何剩余的异常作为被抑制的异常添加到该异常中(除非剩余的异常是第一个异常本身,因为异常不能抑制自身)。可能返回自身。这是一个中间操作。
- 参数:
-
closeHandler
- 在关闭流时执行的任务 - 返回:
- 具有在流关闭时运行的处理程序的流
-
close
void close()关闭此流,导致调用此流管道的所有关闭处理程序。- 指定者:
-
close
在接口AutoCloseable
中 - 另请参见:
-