先月に引き続き、今月もStream APIについて解説します。

 前回、ストリームのメソッドには、パイプラインの途中で使用する中間操作と、パイプラインの最後に使用する終端操作があると説明しました。そして、中間操作のfilterメソッドとmapメソッド、また終端操作のforEachメソッドとreduceメソッドについて解説しました。

 今回も引き続きストリームのメソッドについて紹介します。今回は中間操作のflatMapメソッドと終端操作のcollectメソッドを取り上げます

flatMapメソッド

 flatMapメソッドは、前回紹介したmapメソッドの一種と考えることができます。

 flatMapメソッドもmapメソッドと同様、引数の型はjava.util.function.Functionインタフェースです。ただし、Functionインタフェースのapplyメソッドの戻り値がストリームに限定されている点が、mapメソッドと異なります。

 例えば文を保持しているリストを単語に分割することを考えてみます。文を単語に分割するのは、Stringクラスのsplitメソッドを使用します。