TerminalOP
说明文档
- 一个在流管道中的操作,它会接收一个流作为输入,并且生成一个结果或产生副作用
-
一个 TerminalOp 拥有一个输入类型和流模型和结果类型
-
一个 TerminalOp 还拥有一组操作标识,用于描述操作如何处理流中的元素
-
例如:短路、以指定顺序执行
-
-
一个 TerminalOp 必须提供涉及流源的操作和一组中间操作的串行与并行的实现
方法
- <P_IN> R evaluateSequential(PipelineHelper<E_IN> helper, Spliterator<P_IN> spliterator);
ForEachOp
ForEachOps 中的静态内部类
实现了 TerminalOp
说明文档
- 计算一个流管道,并且讲输出发送给自身作为一个 TerminalSink
-
元素会发送给任意一个线程
-
若遍历是无序的,则发送时不依赖于特定的顺序
-
此终止操作是无状态的
-
对于并行的操作,每一个将要发送元素到同一个 TerminalSink 引用的 ForEachTask 的叶子实例,都会是当前类的一个实例
evaluateSequential 方法的返回值
- return helper.wrapAndCopyInto(this, spliterator).get();
FindOps, MatchOps, ReduceOps
TerminalOp 的构造工厂,与 ForEachOps 类似