java - 如何对 LinkedHashMap 中的重复键值求和?

标签 java linked-list hashmap

我有一个 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/

相关文章:

c - C链表遍历中移除条目并释放桶节点时出错

java - 根据长度将文本文件中的单词分组到 Arraylist

rust - 如何使用任意键类型序列化和反序列化 BTreeMaps?

java - Java中泛型类型序列化的HashMap之HashMap

c++ - 为什么 temp->next!=NULL 有效而 temp!=NULL 在 C++ 的链表中不起作用

c - 释放其所有内存并将其头指针设置为 NULL(空列表)

java: csv...我需要一个库吗?

java - Spring bean 配置

java - 是否可以在不同的 servlet、相同的 WAR 中使用不同的 Spring Security AuthenticationProvider?

java - LDAP 错误 : invalid structural object class chain (organizationalUnit/referral)