从信息流中获取子信息流列表

时间:2019-04-11 08:56:24

标签: java java-8 java-stream

我有一个SeniorEmployee类,该类具有一些属性,并且在同一类下有JuniorEmployee列表。现在,我的标准是通过流并基于某些条件在SeniorEmployee中进行迭代,然后对于与过滤条件匹配的SeniorEmployee,我们需要在juniorEmployee列表中进行迭代并计算其总薪水。那么,如何通过流在单个lambda表达式中实现呢?请帮忙。

SeniorEmployee id过滤条件为EmpCode为10;

    SeniorEmployee{
    empCode;
    List<JuniorEmployee> junEmpList
    }

    JuniorEmployee{
     Emp Id;
    Salary;
}

1 个答案:

答案 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();