resList.stream() .filter过滤后的数据如何批量处理
时间: 2024-10-11 12:03:59 浏览: 31
`resList.stream()` 是 Java 中的 Stream API 方法,用于将列表 (`resList`) 转换为流(Stream),这是一种高效的处理集合中元素的方式。`stream()` 方法返回的是一个可遍历的序列,可以在上面执行各种并行或串行的操作。
`filter()` 是 Stream API 提供的一个操作,用于根据给定的条件筛选流中的元素。当你调用 `filter(Predicate condition)`,会从原流中选择那些满足 `condition` 函数值为 true 的元素,形成一个新的流。
例如,如果你有一个包含用户对象的 `resList`,你可以这样批量处理:
```java
List<User> resList = ...; // 假设 User 是一个类
// 过滤出年龄大于18岁的用户
Predicate<User> filterCondition = user -> user.getAge() > 18;
// 创建一个新的流,只包含符合条件的用户
Stream<User> filteredStream = resList.stream().filter(filterCondition);
// 对过滤后的流进行批量处理,如计算总人数、平均年龄等
long totalUsers = filteredStream.count(); // 统计数量
OptionalDouble averageAge = filteredStream.mapToDouble(User::getAge).average(); // 计算平均年龄
// 如果你需要对每个用户做操作,可以接着调用 map 或 forEach 等方法
filteredStream.forEach(user -> {
// 执行对应操作,如发送通知或者更新数据库
});
```
阅读全文