Использование коллекторов для группировки одного поля, подсчета и добавления другого значения поля - PullRequest
3 голосов
/ 22 мая 2019

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

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

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

1 Ответ

2 голосов
/ 22 мая 2019
 Map<String,Long> statusMap = statusList.stream()
        .collect(Collectors.groupingBy(
            Status::getResult,
            Collectors.summingLong(Status::getNumberOf)));
...