У меня есть класс Sales.
Class Sales {
String month; String year; String city; String state; String sales;
}
Есть список объектов продаж
"result" :[
{
"month" : "JAN",
"year": "2000",
"state" : "State1",
"city" : "City1",
"sales" : "10"
},
{
"month" : "JAN",
"year" : "2000",
"state" : "State1",
"city" : "City2",
"sales" : "20"
},
{
"month" : "JAN",
"year" : "2000",
"state" : "State2",
"city" : "City3",
"sales" : "30",
},
{
"month" : "JAN",
"year" : "2000",
"state" : "State2",
"city" : "City1",
"sales" : "40"
},
{
"month" : "FEB",
"year" : "2000",
"state" : "State1",
"city" : "City1",
"sales" : "5",
},
{
"month" : "FEB",
"year" : "2000",
"state" : "State1",
"city" : "City2",
"sales" : "15"
}
]
Что теперь Я пытаюсь достичь общего объема продаж, как показано на картинке выше, как я могу добиться того же, используя java 8. Я пробовал группировать по JAVA 8 функциям, но безуспешно.
list.stream()
.collect(Collectors.groupingBy(p -> p.getMonth(), Collectors.groupingBy(p -> p.getSales(),
Collectors.summingInt(foo->foo.getTotalSales()))))
.forEach((id,total)->System.out.println(id+"\t"+total));