Stream APIとは

コレクションを処理する

ArrayListの中身を順に単純に出力する例を考えます。従来のJava7までのコード

だと以下のようになります。

class Sample {
    public static void main(String[] args) {
       List lt;
      Integer gt; 
      arry = new ArrayList<>();
      arry.add(10);
      arry.add(20);
      arry.add(30);
      arry.add(50);
 
     for( int i : arry){
         System.out.println(i);
     }
}

このようにforループをコレクションの中身を逐次処理するコード書いていました。

StreamAPIを使うとコレクションに対して、System.out.println を順次実行せよ

実行するメソッドをSystem.out.printlnメソッド(関数)をStreamAPIにforEach

とううメソッドを引き渡す感覚になります。実際には以下のようなコードになります。

public static void main(String[] args) {
   List lt;
   Integer gt; 
  arry = new ArrayList<int>();
  arry.add(540);
  arry.add(20);
  arry.add(30);
  arry.add(490);

  arry.stream().forEach(System.out::println);
 }

このようにforループがなくなり、単純化されました。

forEachメソッドの中の記述は、先に記事に書いたメソッド参照というJava8で追加された構文になります。

このStreampAPIほかにも様々な事ができます。続きは次回。