我有一个 LinkedHashMap,其中有两个具有对应值的重复键,我需要知道如何将这些值 SUM 为一个键。目前他消除了旧的重复值并放入新的
这是我的 map
static Map<String, Double> costByDuration = new LinkedHashMap<>();
这是我放置值的地方(call_from 可以是 912345678,值为 10,然后另一个来自 912345678 的调用,值为 20),然后我希望 912345678 的值为 30,而不是只保留一个。
costByDuration.put(call_from, toPay);
最佳答案
我会创建一个方法如下:
public void put(String key, Double value){
costByDuration.merge(key,value , Double::sum);
}
那么用例将是:
put(call_from, toPay);
put(anotherKey, anotherValue);
...
...
此解决方案内部使用 merge
方法基本上说明如果指定的键尚未与值关联或与 null 关联,则将其与给定的非 null 值关联。否则,将关联值替换为给定重映射函数的结果。
关于java - 如何对 LinkedHashMap 中的重复键值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50730869/