前回までの解説で、ストリームの主要なメソッドを解説しました。今まで紹介した6種類のメソッドを使用することで、ストリームを使用する多くの処理を記述できるはずです。今回は、以下に示す中間操作のメソッドについて解説します。
- limit
- distinct
- skip
- sorted
limitメソッドはストリームの要素数を制限するためのメソッドで、distinctメソッドは重複を排除するためのメソッドとなります。skipメソッドはストリームの先頭から要素をスキップするためのメソッドです。最後のsortedメソッドはその名の通り、ストリームの要素をソートするためのメソッドとなります。順に紹介します。
limit
limitメソッドはストリームの要素数を制限するためのメソッドです。引数は制限する要素数となり、引数の型はlongです。
第5回 Stream API その1で、ストリームの生成にiterateメソッドもしくはgenerateメソッドを紹介したときにlimitメソッドに触れたように、主に無限ストリームを有限個のストリームに変換するときに使用します。
例えば、0から始まる要素数が10の偶数のストリームを生成するには次のように行います。
リスト1 要素数が10の0から始まる偶数のストリームの生成
IntStream stream = IntStream.iterate(0, n -> n + 2)
.limit(10L);
赤字で示したように、10を引数にしてlimitメソッドをコールすることで、要素数が10のストリームになります。つまり、0,2,4,...18からなるストリームとなります。