stream 流 对一个对象多条件过滤
时间: 2023-10-02 20:11:23 浏览: 79
可以使用 Java 8 中的 Stream API 来对一个对象进行多条件过滤。假设我们有一个 `Person` 类,包含属性 `name`、`age` 和 `gender`,我们想要根据多个条件来过滤出符合条件的人员,可以使用如下代码:
```java
List<Person> people = new ArrayList<>(); // 假设这是我们的人员列表
// 进行多条件过滤
List<Person> filteredPeople = people.stream()
.filter(p -> p.getAge() > 18) // 年龄大于 18 岁
.filter(p -> p.getGender().equals("Male")) // 性别为男性
.filter(p -> p.getName().startsWith("J")) // 姓名以 J 开头
.collect(Collectors.toList()); // 将符合条件的人员收集到一个新的列表中
// 输出过滤后的人员列表
filteredPeople.forEach(System.out::println);
```
在这个例子中,我们使用了三个 `filter` 操作符来进行多条件过滤,每个 `filter` 操作符都是对 `Person` 对象的一个属性进行判断,只有当所有条件都符合时,这个 `Person` 对象才会被收集到新的列表中。最后,我们通过 `Collectors.toList()` 方法将符合条件的人员收集到一个新的列表中,并通过 `forEach` 方法输出这个列表中的人员信息。
阅读全文