如何通过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());
答案 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