от
У меня есть список
StatisticsItem
(
String context, Integer numberOfHits, String yyyyMM
). Примером экземпляра является
context=WEBSITE, numberOfHits=12456, yyyyMM="2019.

Я хочу получить отсортированный Map
, который имеет в качестве ключа дату yyyyMM и в качестве значения агрегированное количество хитов за этот месяц. Я пытаюсь такого рода код, но я не могу заполнить пробелы:
Map collect = 
      list.stream()
          .sorted((s1, s2) 

Вход:

{context="WEBSITE", numberOfHits=500, yyyyMM="2019

Требуемый вывод (контекст может быть нулевым или любым другим в этом случае):

{context=null, numberOfHits=5900, yyyyMM="2019
    

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Вы можете просто сгруппировать по полю даты.
list.stream().groupingBy(StatisticsItem::getYyyyMM, 
              Collectors.mapping(StatisticsItem::getNumberOfHits, Collectors.summingInt(Integer::intValue)))
Тогда у вас есть
Map
0 голосов
от
Кажется, вам действительно нужен
Collection
...