java lambda:如何计算列表中的项目总数?

时间:2018-06-11 03:44:28

标签: java lambda

如何通过lambda返回以下结果?

int total = 0;
for (User user : userList) {
    total += user.getAge();
}

我知道减少使用。new LinkedList<Integer>().stream().reduce(0, (acc, x) -> acc + x)
我想尝试(但失败了)。 userList.stream().reduce(0, (acc, x) -> acc.getAge() + x.getAge());

1 个答案:

答案 0 :(得分:7)

您可以使用useList .stream() .mapToInt(User::getAge) .sum();

reduce

如果你真的想使用useList.stream() .mapToInt(User::getAge) .reduce(0, (acc, current) -> acc + current); ,那么就是这样(但我没有注意到使用它,因为上面的内容更具可读性)

user.stream()
    .reduce(0, (c, user) -> c + user.getAge(), (a, b) -> a + b);

或按照Holger @

的建议
traffic_model