【发布时间】:2015-03-20 10:15:58
【问题描述】:
我有一个ArrayList,其中包含一些Integer values 作为Pairs。我想对 List 中左侧元素相同的 right 元素求和。
例如,输入的arrayList将包含:
final List<Pair<Integer, Integer>> a = new ArrayList<>();
a.add(new Pair<>(1, 1));
a.add(new Pair<>(2, 1));
a.add(new Pair<>(2, 3));
New ArrayList should contain:
如下图:
(普通左值,左值相同的所有右值之和)
1, 1
2, 4
我编写的代码不返回有效值:
for (int i=0; i< a.size(); i++){
//need help here
}
编辑:我想要重复的对,所以 HashMap 不起作用。
抱歉修改。
【问题讨论】:
-
您可以使用
HashMap<Integer, Integer>并对键的值求和。 -
他可能想要重复的键值对。
-
我想要重复的键值对,所以 hashmap 不起作用
-
这个问题没有说明结果中那些重复的键值对。事实上,提供的描述和示例表明结果不应包含重复项。 (“常见的左值,左值相同的所有右值的总和” - 结果中有重复项将不符合该要求)
-
重复处理还不清楚。如果您的结果包含
(3,10)和(3,10),那不应该从一开始就合并为(3,20)吗?