今回は、前回に紹介しきれなかったストリームのcollectメソッドを引き続き紹介していきます。

 軽くおさらいしておきましょう。collectメソッドはストリームの要素の集約処理を行うためのメソッドです。

 collectメソッドの引数のjava.util.stream.Collectorインタフェースは関数型インタフェースではなく、通常のインタフェースです。実際には、ユーティリティクラスであるjava.util.stream.Collectorsクラスのstaticメソッドをcollectメソッドの引数に使用します。

 前回も提示しましたが、Collectorsクラスの主なメソッドを表1に示します。

表1 Collectorsクラスの主なメソッド
メソッド名 説明
toList
toSet
ストリームをリストもしくはセットに変換する
joining 文字列のストリームの要素を連結した文字列を生成する
groupingBy ストリームの要素をグルーピングする
partitioningBy ストリームの要素を条件合致するものと、しないものに分割する
sumingInt
sumingLong
sumingDouble
ストリームの要素を数値化し、合計する
averagingInt
averagingLong
averagingDouble
ストリームの要素を数値化し、平均を算出する
summarizingInt
summarizingLong
summarizingDouble
ストリームの要素を数値化し、統計情報を算出する
counting 要素数を数える
maxBy
minBy
要素の最大/最小を求める
reducing reduceメソッドと同じ処理を行う
mapping mapメソッドと同じ処理を行う
toMap マップに変換する

 前回はこの中から、次の3種類のメソッドについて紹介しました。

  • toList/toSet
  • joining
  • groupingBy

 今回は、残りのメソッドのうち、合計などの要素の統計値を算出するメソッド群を紹介します。また、後半ではCollectorインタフェースの実装クラスを実際に作ってみます。