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で繰り返し処理するための内容をラムダ式で記述しています。
ソースコードがシンプルになりましたね。