Stream APIその2

前回、StreamAPIを紹介してかえ大分、間が空いてしました。StreamAPIについて

続編を紹介していきます。コレクションを単純に繰り返し処理する例でしたが

今回はフィルタリングして処理する例を紹介します。

filter

ある文字列の配列のから小文字の”a”が含まれているデータだけを抽出する場合以下のようなコードに記述します。

 

String[] values={"apple","orange","banana","peach","lemon","mango"};
for( String s: values){
 if( s.contains("a")){
 System.out.println(s);
 }
}

for文とif文の組み合わせで処理を書きました。StreamAPIを使うとfileterといメソッドにフィルタリングするための関数(Javaで言うメソッド)を与えて

さらにforEachで処理する関数(メソッド)を記述すると簡単に上記と同じことを実装することができます。

String[] values={"apple","orange","banana","peach","lemon","mango"};
 Stream<String> stream = Arrays.stream(values);
 stream.filter(value -> value.contains("a")).forEach(value -> System.out.println(value));

Stringの配列をStreamへ変換するにはArray.streamメソッドを利用します。Streamへ変換した後は、filterメソッドでフィルタリングの条件を

ラムダ式で記述して、さらにforEachで繰り返し処理するための内容をラムダ式で記述しています。

ソースコードがシンプルになりましたね。