stream根据一个字段的两个值去filter
时间: 2023-08-11 11:05:10 浏览: 134
Java8 Stream对两个 List 遍历匹配数据的优化处理操作
3星 · 编辑精心推荐
您好,根据一个字段的两个值进行 filter 可以使用 stream 中的 filter() 方法和 lambda 表达式来实现。具体可以按照以下步骤进行:
1. 使用 stream() 方法将集合转换为流。
2. 使用 filter() 方法进行筛选。
3. 在 filter() 方法中使用 lambda 表达式,指定需要筛选的条件。
例如,假设有一个 Student 类,包含 name 和 grade 两个字段,现在需要根据 grade 字段的值为 A 或 B 进行筛选,可以按照以下方式实现:
```
List<Student> students = ... ; // 从数据库或其他数据源获取 Student 集合
List<Student> filteredStudents = students.stream()
.filter(s -> s.getGrade().equals("A") || s.getGrade().equals("B"))
.collect(Collectors.toList());
```
上述代码中,使用了 stream() 方法将 students 集合转换为流,然后在 filter() 方法中使用 lambda 表达式,对 grade 字段进行了筛选,最后使用 collect() 方法将筛选后的结果转换为 List 集合。
注意,在 lambda 表达式中使用 || 运算符表示或,可以将多个条件连接起来进行筛选。
阅读全文