У меня проблема с реализацией java 8, касающаяся множественного агрегирования списка HashMap (желательно с функцией "reduce"
, но не обязательно)
Мне нужно выполнить множественное агрегирование по имени ключа - "service" with split("_")[0]
какв Json ниже:
Предположим, моя структура данных:
List<Map<String, Object>> payments = new ArrayList<>();
for(int i=0 ; ....i++){
Map<String, String> map = new HashMap<>();
map.put("service","IMAP_"+i);
map.put("storageValue",<some value>)
....
payments.add(map);
}
Json:
{
"payments": [
{
"service": "IMAP_1",
"storageValue": 10,
"users": "10"
},
{
"service": IMAP_2,
"storageValue": 20,
"users": "1"
},
{
"storageValue": 200,
"service": "Office 365 Exchange_1",
"users": "15"
},
{
"storageValue": 200,
"service": "Office 365 Exchange_2",
"users": "10"
},
{
"storageValue": 50,
"service": "SalesForce_1",
"users": "100"
}
]
}
Результат должен быть:
{
"payments": [
{
"service": "IMAP",
"storageValue": 30,
"users": "11"
},
{
"storageValue": 400,
"service": "Office 365 Exchange",
"users": "25"
},
{
"storageValue": 50,
"service": "SalesForce",
"users": "100"
}
]
}
должно быть что-то ..
payments.stream().forEach(paymet -> {
paymet.entrySet().stream().map(....?...).reduce()...
);