【发布时间】:2014-12-08 01:25:17
【问题描述】:
我有一个类 Foo 包含这些字段:
id:int / name;String / targetCost:BigDecimal / actualCost:BigDecimal
我得到一个此类对象的数组列表。例如:
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));
我该怎么做?
【问题讨论】:
标签: java lambda java-8 java-stream