Использование коллекторов для группировки по одному полю, подсчета и добавления другого значения поля

Я хотел бы использовать коллекторы, чтобы сгруппировать по одному полю, подсчитать и добавить значение другого поля. Например:

Это моя таблица БД:

id    host    result    numberof    date
23    host1   24GB         1        2019-05-20
23    host7   10GB         1        2019-04-21
23    host3   24GB         3        2019-05-12
23    host4   10GB         1        2019-04-22

Что я хочу сделать, так это сгруппировать столбец результатов groupBy, а затем подсчитать, НО также принять во внимание значение 'numberof'. поэтому в этом случае после группировки, подсчета и добавления значений:

"24GB": 4
"10GB": 2

Не совсем уверен, как это сделать, я надеюсь, что вы, ребята, можете мне помочь.

Map<String,Long> statusMap = statusList.stream()
            .collect(Collectors.groupingBy(
                Status::getResult,
                Collectors.counting()));

но вы хотите, чтобы достичь счета, а в конце? ваш вывод просто сохраняет сумму в настоящее время

Naman 22.05.2019 13:21

Да, после этого я подсчитываю общее количество.

CleverDev 22.05.2019 13:28
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
3
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
 Map<String,Long> statusMap = statusList.stream()
        .collect(Collectors.groupingBy(
            Status::getResult,
            Collectors.summingLong(Status::getNumberOf)));

Другие вопросы по теме

Как с помощью Spring Security перенаправить зарегистрированного пользователя на его главную страницу, а незарегистрированного пользователя на другую
Axon Как я могу добавить прослушиватель/перехватчик событий для перехвата событий до того, как они достигнут своих обработчиков?
Как решить ошибку HHH000346, используя hibernate 5 и mysql?
Ожидаемое значение выражения jsonPath, но возвращаемый список значений
Как выполнить модульное тестирование (вставить) уровень поставщика данных в Spring Framework?
Как опубликовать список bean-компонентов с помощью RestTemplate, но bean-компонент должен быть массивом байтов?
Почему мой работающий интерфейс зацикливает мою очередь Продолжить здесь
Как мы можем сделать асинхронный вызов API REST в Java?
Как интегрировать фабричный метод, который принимает Class<T> и производит T в Spring
Как зарегистрировать входящий запрос в spring MVC