Java Stream 过滤条条件多个
时间: 2023-07-18 20:32:25 浏览: 47
在 Java Stream 中,可以使用多个条件来进行过滤,可以使用 `filter()` 方法来实现。下面是一个示例:
假设我们有一个 `Person` 类,其中包含 `String name`、`int age` 和 `String gender` 三个属性。
```
public class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
```
我们现在需要对一个 `List<Person>` 进行过滤,筛选出年龄大于等于 18 岁且性别为女性的人。可以使用以下代码:
```
List<Person> persons = new ArrayList<>();
// 添加数据到 persons 列表中
List<Person> filteredPersons = persons.stream()
.filter(person -> person.getAge() >= 18) // 过滤出年龄大于等于 18 岁的人
.filter(person -> "female".equals(person.getGender())) // 过滤出性别为女性的人
.collect(Collectors.toList());
```
上面的代码中,使用了两个 `filter` 方法,分别过滤出年龄大于等于 18 岁和性别为女性的人。最后使用 `collect()` 方法将符合条件的人收集到一个新的列表中。
可以根据实际需求,使用更多的 `filter` 方法来实现多重条件过滤。