Javaのstream().filterの目的は何ですか。
JavaのStream().filter()は、特定の条件を満たす要素を選択し、新しいストリームを生成するための中間操作です。このメソッドは、Predicate関数インタフェースをパラメータとして受け取ります。Predicateインタフェースは、要素が条件を満たしているかどうかを判断するメソッドを定義しています。filter()メソッドは、ストリーム内の各要素を繰り返し処理し、各要素にPredicateインタフェースのtest()メソッドを適用します。このメソッドがtrueを返す場合、要素は新しいストリームに含まれ、そうでない場合は含まれません。
filter()メソッドは、コレクションや配列内の要素をフィルタリングし、特定の条件を満たす要素のみを保持するために使用できます。たとえば、以下のコードスニペットは、整数のストリームから偶数をフィルタリングする方法を示しています。
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()メソッドを使用して条件を満たす要素(つまり2で割り切れる要素)を選択し、最後にcollect()メソッドを使用して結果を新しいリストに収集します。最終的な出力は、すべての偶数を含むリスト[2,4,6,8,10]です。