java List<Map<String, BigDecimal>> mapInList 将键值一样的合并相加
时间: 2024-09-13 07:19:06 浏览: 62
在Java中,如果你有一个`List<Map<String, BigDecimal>> mapInList`,它是一个列表,其中每个元素都是一个Map,键值对的键都是一样的(例如都是字符串),你可以通过遍历并聚合每个Map来将相同的键对应的值相加。这通常需要一个循环结构,比如使用`Stream` API或者传统的for-each循环。
下面是一个简单的示例,假设我们只考虑两个Map之间的合并:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public Map<String, BigDecimal> combineMaps(List<Map<String, BigDecimal>> mapInList) {
Map<String, BigDecimal> combinedMap = new HashMap<>();
for (Map<String, BigDecimal> map : mapInList) {
for (String key : map.keySet()) {
if (combinedMap.containsKey(key)) {
combinedMap.put(key, combinedMap.get(key).add(map.get(key)));
} else {
combinedMap.put(key, map.get(key));
}
}
}
return combinedMap;
}
```
这个方法会创建一个新的Map,其中包含所有输入列表中出现过的键,并计算出每个键对应的值总和。如果遇到相同的键,就将它们的值相加。
阅读全文