У меня есть класс Foo
с этими полями:
id: int/name; String/targetCost: BigDecimal/actualCost: BigDecimal
Я получаю arraylist объектов этого класса. например:
new Foo(1, "P1", 300, 400),
new Foo(2, "P2", 600, 400),
new Foo(3, "P3", 30, 20),
new Foo(3, "P3", 70, 20),
new Foo(1, "P1", 360, 40),
new Foo(4, "P4", 320, 200),
new Foo(4, "P4", 500, 900)
Я хочу преобразовать эти значения, создав сумму "targetCost" и "actualCost" и группируя "строку", например.
new Foo(1, "P1", 660, 440),
new Foo(2, "P2", 600, 400),
new Foo(3, "P3", 100, 40),
new Foo(4, "P4", 820, 1100)
То, что я написал сейчас:
data.stream()
.???
.collect(Collectors.groupingBy(PlannedProjectPOJO::getId));
Как я могу это сделать?