filter
メソッドは中間操作の一つで、ストリーム要素の中から条件に合致するのものを取得する操作です。
以下の処理は、1~5の要素の中で、2で割ったあまりが0の要素を表示します。
Java
public static void main(String args[]){
IntStream.rangeClosed(1,5)
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
}
実行結果
2
4
filterメソッドでは、関数型インターフェースのPredicate<T>
を用いることにより、任意の処理を実行することが可能です。
Java
//List生成
List<Integer> list = Arrays.asList(7, 10, 12, 9, 31);
//filterのメイン処理
Predicate<Integer> p = n -> {
System.out.print("これから" + n + "を判定します。");
boolean result = n > 10;
System.out.println("判定結果は" + result + "です。");
return result;
};
//ListをStream化し、filterを実行。
list.stream()
.filter(p)
.forEach(System.out::println);
実行結果
これから7を判定します。判定結果はfalseです。
これから10を判定します。判定結果はfalseです。
これから12を判定します。判定結果はtrueです。
12
これから9を判定します。判定結果はfalseです。
これから31を判定します。判定結果はtrueです。
31
以上で記事の解説はお終い!
もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!