Collectorはストリームのリダイレクション操作を行うための
インターフェース。

Collectorクラス図

リダイレクション操作を行うためのインターフェース

リダイレクションとは、出力先を変更すること。
Linuxのコマンドなんかでも出てくる概念で、
Linuxコマンドではプログラムの出力結果を違うファイルへと出力したりできる。

Collectorの場合は、入力をStreamの各要素として
「コレクションやMaoとして」出力したり、「何らかの計算処理を挟んで集計して」出力したり
することができる。

Collector自体は処理を行わない

実はCollectorはそれ自体で何らかの処理をすることがない。
Collectorはリダイレクション操作に必要な処理を保持しているだけ。
メソッド群にも処理をするメソッドがない。

実際の操作はStreamが行う。
Collecotrを使う上でのルールみたいなものがあって
それを守って使っている。

CollectorはStreamありきの存在である。

Collectorsに定義済みのものを使う

Collectorのインスタンスはofのstaticメソッドで生成するか
Collectorsクラスに定義済みのものを使う。

Collectorsクラスに大体のものは揃っているので
Collectorを実装する機会はほとんどないかもしれない。

3つの型引数

Collectorは「T」「A」「R」の3つの型引数を受け取る。

基本的に「T」と「R」に注意する。
(基本的に真ん中のAは気にしなくていい。?ということも多い。
内部の実装者だけが気にすればいい。)

PR