java8 stream 多个条件过滤
时间: 2023-09-27 16:08:21 浏览: 146
可以使用 filter 和 Predicate 来实现多个条件过滤,例如:
```
List<Person> people = Arrays.asList(
new Person("Alice", 25, Gender.FEMALE),
new Person("Bob", 30, Gender.MALE),
new Person("Charlie", 35, Gender.MALE),
new Person("David", 40, Gender.MALE),
new Person("Eve", 45, Gender.FEMALE)
);
Predicate<Person> agePredicate = person -> person.getAge() > 30;
Predicate<Person> genderPredicate = person -> person.getGender() == Gender.MALE;
List<Person> result = people.stream()
.filter(agePredicate)
.filter(genderPredicate)
.collect(Collectors.toList());
```
这里以年龄大于 30 年且性别为男性为条件进行过滤,使用两个 filter 方法分别传入两个 Predicate 实例,最后使用 collect 方法将过滤出来的结果转换成 List。
阅读全文