HashMap
是 Java 中的一种键值对集合,它允许我们通过键(Key)来快速访问对应的值(Value)。连接两个 HashMap
指的是将两个 HashMap
中的数据合并到一个新的 HashMap
中。
HashMap
合并。HashMap
是 Java 集合框架中的一种实现,属于 Map 接口的实现类。
putAll
方法import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("C", 3);
map2.put("D", 4);
HashMap<String, Integer> combinedMap = new HashMap<>(map1);
combinedMap.putAll(map2);
System.out.println(combinedMap); // 输出: {A=1, B=2, C=3, D=4}
}
}
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("C", 3);
map2.put("D", 4);
HashMap<String, Integer> combinedMap = new HashMap<>(map1);
for (String key : map2.keySet()) {
combinedMap.put(key, map2.get(key));
}
System.out.println(combinedMap); // 输出: {A=1, B=2, C=3, D=4}
}
}
当两个 HashMap
中存在相同的键时,后面的值会覆盖前面的值。
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("B", 3);
map2.put("C", 4);
HashMap<String, Integer> combinedMap = new HashMap<>(map1);
combinedMap.putAll(map2);
System.out.println(combinedMap); // 输出: {A=1, B=3, C=4}
}
}
解决方法:在合并时检查键是否存在,如果存在则进行特殊处理(例如合并值、抛出异常等)。
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("B", 3);
map2.put("C", 4);
HashMap<String, Integer> combinedMap = new HashMap<>(map1);
for (String key : map2.keySet()) {
if (combinedMap.containsKey(key)) {
// 处理键冲突,例如合并值
combinedMap.put(key, combinedMap.get(key) + map2.get(key));
} else {
combinedMap.put(key, map2.get(key));
}
}
System.out.println(combinedMap); // 输出: {A=1, B=5, C=4}
}
}
希望以上信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云