聚合java中的特定字段

时间:2016-10-26 14:54:46

标签: hashmap

我有以下输入数据,我想要的是在field1和field2重复后聚合持续时间字段(field3),

我尝试了hashmap,但在我的情况下有2个键,还有一个值!

输入文件:

date   Company Duration
20161014    IBM 234
20161014    IBM 132
20161014    DELL    223
20161014    DELL    23
20161014    DELL    12
20161015    IBM 122
20161015    IBM 654
20161015    IBM 347
20161015    IBM 997
20161015    DELL    666

需要输出:

Date   Company Total duration
20161014    IBM 366
20161015    IBM 2120
20161014    DELL    258
20161015    DELL    666

由于

1 个答案:

答案 0 :(得分:0)

您可以将groupingBy与流使用:

 items.stream().collect(
                    Collectors.groupingBy(Item::getDate, mapping(Item::getCompany, toSet())), Collectors.summingInt(Item::getTotalDuration)));