Collector
ストリームのリダクション操作のためのインターフェースであり、処理途中のオブジェクトを適切に扱うことができる。
public interface Collector<T, A, R> {
Supplier<A> supplier();
BiConsumer<A, T> accumulator();
BinaryOperator<A> combiner();
Function<A, R> finisher();
Set<Characteristics> characteristics();
}
- T : ストリームないの要素の型
- A : 処理途中の値を保持するためのオブジェクト
- R : 最終結果の型
- supplier() : 処理途中の値を保持するためのオブジェクトを生成する
- accumulator() : 具体的に実行したい処理を記述したBiConsumer型のラムダ式を返す
- combiner() : 二つの部分結果を結合する(並行処理時に使用される)
- finisher() : 処理結果を返すラムダ式を提供する
- characteristics() : Collectorの特徴を表わすEnumのセットを戻す
上記のメソッドはすべて実装が必要