java如何组合两个没有重复条目的hashmap

时间:2014-02-17 21:00:10

标签: java hashmap duplicate-removal

我正在尝试组合两个不同的哈希映射。但是在这两个地图中,有一些重复的条目,所以我必须在合并后删除thoese条目。

例如:

HashMap 1:
100你好 101很好

HashMap 2:

100你好 102好

合并后,hashmap应如下所示:

100你好 101好的
102好

我尝试了putall,但似乎没有删除重复的条目。 有人可以帮助我快速做到这一点吗?

3 个答案:

答案 0 :(得分:1)

HashMap的密钥不能重复,因为它们以Set表示,因此合并两张地图应该可以完成工作。

答案 1 :(得分:1)

我认为你的方法没有问题。

HashMap<String, Object> first = new HashMap<String, Object>();
HashMap<String, Object> second = new HashMap<String, Object>();

first.put("100", "hello");
first.put("101", "nice");
second.put("100", "hello");
second.put("102", "good");

first.putAll(second);
System.out.println(first);

输出

{102=good, 101=nice, 100=hello}

如果您对HashMaps的处理是正确的,请尝试检查。

答案 2 :(得分:0)

你可以将两个hashmap map1和map2添加到第三个hashmap map3,只需将value的输入类型声明为Object,因为所有数据类型的超类都是Object类。

HashMap<String, Integer> map1 = new HashMap<String, Integer>();
HashMap<String, String> map2 = new HashMap<String, String>();

HashMap<String, Object> map3;
map3 = new HashMap<>();

map3.putAll(map1);
map3.putAll(map2);