使用stream 流对同一个人的请假天数和增假天数分别进行求和,返回两个请假总天数和增假的总天数
时间: 2024-03-04 10:49:19 浏览: 41
Java8 Stream对两个 List 遍历匹配数据的优化处理操作
3星 · 编辑精心推荐
假设有一个包含Leave对象的List集合,每个Leave对象有一个personName、leaveDays和increaseDays属性,我们可以使用Java Stream API中的filter()、mapToInt()和sum()方法来实现对同一个人的请假天数和增假天数分别进行求和。
例如,假设要对名为"张三"的人的请假天数和增假天数分别进行求和,可以使用以下代码:
```java
int leaveDaysSum = leaveList.stream()
.filter(leave -> leave.getPersonName().equals("张三"))
.mapToInt(Leave::getLeaveDays)
.sum();
int increaseDaysSum = leaveList.stream()
.filter(leave -> leave.getPersonName().equals("张三"))
.mapToInt(Leave::getIncreaseDays)
.sum();
```
上述代码中,filter()方法用于筛选出personName属性为"张三"的Leave对象,mapToInt()方法用于将Leave对象的leaveDays或increaseDays属性映射为int类型的流,sum()方法用于对这个流进行求和。最终的结果是一个int类型的值,分别代表请假天数和增假天数的总和。
阅读全文