Javaで、stream().filerを使って複数の条件をフィルタリングする方法は何ですか。
Javaでは、複数の条件をフィルタリングするためにstream().filter()メソッドを使用することができます。以下はサンプルコードです:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> filteredNumbers = numbers.stream()
.filter(n -> n % 2 == 0) // 过滤偶数
.filter(n -> n > 5) // 过滤大于5的数
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [6, 8, 10]
}
}
上記のコードでは、リストをストリームに変換するためにstream()メソッドを使用し、その後にfilter()メソッドを複数回使用しています。各filter()メソッドは、Lambda式をパラメータとして受け取り、そのLambda式はフィルタリング条件を定義します。最後に、collect(Collectors.toList())メソッドを使用してフィルタリングされた要素を新しいリストに収集します。
上記の例では、フィルタ条件は偶数および5より大きい数ですが、必要に応じて複数のフィルタ条件を定義できます。