我有一个SeniorEmployee类,该类具有一些属性,并且在同一类下有JuniorEmployee列表。现在,我的标准是通过流并基于某些条件在SeniorEmployee中进行迭代,然后对于与过滤条件匹配的SeniorEmployee,我们需要在juniorEmployee列表中进行迭代并计算其总薪水。那么,如何通过流在单个lambda表达式中实现呢?请帮忙。
SeniorEmployee id过滤条件为EmpCode为10;
SeniorEmployee{
empCode;
List<JuniorEmployee> junEmpList
}
JuniorEmployee{
Emp Id;
Salary;
}
答案 0 :(得分:0)
seniors.stream().filter(x -> YOUR_SENIOR_CONDITION).mapToInt(x -> x.junEmpList.stream().mapToInt(y -> y.salary).sum()).sum()
或根据您的建议,尝试以下操作:
seniors.stream().filter(x -> YOUR_SENIOR_CONDITION).flatMap(z -> z.junEmpList.stream()).mapToInt(o -> o.salary).sum();