Java List<Map<String, Object>> 相同的键值求和
时间: 2024-06-09 21:03:51 浏览: 127
在Java中,如果你有一个`List<Map<String, Object>>`的集合,其中每个`Map`都有相同的键(key),但值可能是不同类型的`Object`,你需要先确保这些值都是可以进行数值加法操作的。例如,如果它们是Number类型的子类(如Integer、Double等)。
下面是一个简单的示例,展示了如何遍历这样的列表,对相同键的值进行求和:
```java
List<Map<String, Number>> mapList = ...; // 假设所有的值都是Number类型
Map<String, Number> sumMap = new HashMap<>();
for (Map<String, Number> map : mapList) {
String key = map.keySet().iterator().next(); // 获取第一个键
Number currentValue = map.get(key);
Number accumulatedValue = sumMap.getOrDefault(key, currentValue); // 如果键不存在,使用当前值,否则累加
sumMap.put(key, accumulatedValue.doubleValue() + currentValue.doubleValue()); // 将结果转换为double并累加
}
// sumMap现在包含了相同键值的总和
```
这里的关键点是`getOrDefault()`方法,它可以安全地获取键对应的值,如果键不存在则返回默认值(这里是当前值),这样我们就可以处理列表中的每个Map,而不需要每次都检查键是否存在。
阅读全文
相关推荐



















