この記事は、Java Advent Calendar 2013の2日目として書かれたものです。 Java SE 8では、Stream APIという新しいAPIが導入されます。Stream APIは、何らかの要素の集まり(配列やコレクション、あるいはテキストファイルを読み取るときの一行一行など)に対するさまざまな操作を抽象化した、とても便利なAPIです。 Stream APIは、Java SE 8の新機能としても特に注目されているものの1つでしょう。類似の仕組みがC#やScalaやRubyなど他の言語でも広がっており、Javaにもついに、と待ち望んでいる方も多いでしょう。 ところが、Streamインターフェースが持つ様々な便利メソッド(filter、map、flatMap、collectなど)は、あちこちでよく紹介される一方で、次の2点は、あまり注目されていないように思いました(ぼくが見た限