Java лямбда: Как подсчитать общее количество элементов в списке? - PullRequest
0 голосов
/ 11 июня 2018

Как я могу вернуть следующий результат по лямбде?

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

Я знаю, как использовать Reduce. new LinkedList<Integer>().stream().reduce(0, (acc, x) -> acc + x)
Я хочу попробовать (но не получилось).userList.stream().reduce(0, (acc, x) -> acc.getAge() + x.getAge());

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать mapToInt

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...