我希望您能够使用Stream API找到一个好的方法/实现来处理以下内容:
我有一个元素列表,每个元素包含一个字符串和一个整数。现在我想按照它们的字符串值对元素进行分组,然后对于每个组,我想要与该组相关的元素的整数值之和。
例如:我有以下3个元素:
("GroupA", 100) ("GroupA", 50) ("GroupB", 10)
因此,我希望得到一个由以下两个(键,值)对组成的地图:
("GroupA, 150) ("GroupB, 10)
我不确定如何解决这个问题。目前为止,我想到的最有前途的方法是:
elements.stream().collect(Collectors.groupingBy(e-> e.getGroup()))
.merge(group, elementsOfTheGroup, (...));
但我不确定在merge方法的最后一个参数中应该插入什么函数。但我也不知道是否应该使用merge方法。
什么实现方式最优雅?