在java中两个map相加怎么写
时间: 2024-10-15 14:29:15 浏览: 26
详解Java8合并两个Map中元素的正确姿势
在 Java 中,如果你有两个 `Map` 对象,并希望将它们合并成一个新的 `Map`,你可以通过多种方式实现,这取决于你对 "相加" 的理解以及 `Map` 中的元素类型是否允许有重复键。以下是几种常见的方法:
1. **合并键值相同的项**:
如果你想保留两个 `Map` 中键值相同的项并取平均值、追加列表等,可以先创建一个新的空 `Map`,然后遍历每一个 `Map`,添加新的条目到新 `Map`。
```java
Map<String, Number> map1 = ...;
Map<String, Number> map2 = ...;
Map<String, Number> sumMap = new HashMap<>();
for (Map.Entry<String, Number> entry : map1.entrySet()) {
if (!sumMap.containsKey(entry.getKey())) {
sumMap.put(entry.getKey(), entry.getValue());
} else {
// 这里假设你要把数值相加
sumMap.put(entry.getKey(), sumMap.get(entry.getKey()) + entry.getValue());
}
}
// 同样处理 map2 的条目
// 结果就是 sumMap
```
2. **简单合并(无重复键)**:
如果不允许键重复,可以直接使用 `putAll` 方法合并:
```java
map1.putAll(map2);
```
如果 `map2` 中有 `map1` 中已有的键,则会被覆盖。
阅读全文