stream中filter多条件过滤
时间: 2023-04-27 09:05:59 浏览: 173
多条件筛选
在Java 8中,可以使用Stream的filter()方法进行多条件过滤。可以使用多个Predicate对象来组合多个条件,例如:
```
List<Person> people = ...;
Predicate<Person> ageFilter = p -> p.getAge() > 18;
Predicate<Person> nameFilter = p -> p.getName().startsWith("J");
List<Person> filteredPeople = people.stream()
.filter(ageFilter.and(nameFilter))
.collect(Collectors.toList());
```
上面的代码将会过滤出年龄大于18岁且名字以字母J开头的人。可以使用and()、or()和negate()方法来组合Predicate对象,实现更加复杂的过滤条件。
阅读全文