Javaのfilter関数の利用方法を教えてください。
JavaのStream APIにおけるfilter関数とは、指定した条件をもとにコレクション内の要素を絞り込む処理をするメソッドです。Predicate型の関数型インターフェースを引数として受け取り、照合条件を定義します。
filterメソッドはコレクション内の各要素を判定し、Predicate関数型インターフェイスで定義された条件を満たせばその要素を残し、そうでなければ削除します。結果は条件を満たした要素のみを含む新しいストリームオブジェクトを返します。
フィルタ関数の使用方法の例を以下に示します。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出:[2, 4, 6, 8, 10]
上の例では、filter関数を使ってnumbersの偶数を抽出しています。n -> n % 2 == 0はLambda式で、偶数かどうかを判定するための条件を定義しています。そして、collectメソッドで条件を満たす要素を新しいListにcollectしています。
フィルター関数は元の集合の要素をフィルタリングするだけで、元の集合を変更することはありません。元の集合を変更する場合は、forEach、map などの他の操作メソッドを使用できます。