如何在Java中使用具有唯一键的HashMap?

时间:2012-01-19 08:51:57

标签: java hashmap

如何在Java中使用具有唯一键的HashMap? 或者甚至在HashMap中使用唯一键是否有意义,或者默认情况下键是唯一的? 我是新手。 THX

4 个答案:

答案 0 :(得分:49)

哈希映射键是唯一的。添加重复键,然后它将被覆盖。

 HashMap hm = new HashMap();
 hm.put("1", new Integer(1));
 hm.put("2", new Integer(2));
 hm.put("3", new Integer(3));
 hm.put("4", new Integer(4));
 hm.put("1", new Integer(5));// value integer 1 is overwritten by 5

默认情况下,Hashmap未同步。

答案 1 :(得分:31)

所有地图中的键都是唯一的。各种映射实现之间的区别涉及null键的可能性,迭代的顺序和并发问题。

答案 2 :(得分:1)

通用散列图通常实现为关联数组,所以假设你想要添加一个新的(键,值)对,你的数组有N个元素,从0到N-1,它在幕后做了什么是(只是概念上):

  1. index = hash(key)mod N
  2. array [index] = value
  3. 因此,通过构造,键被映射到一个和一个唯一的数组条目。

    请注意,它实际上比这更复杂:我忽略了碰撞处理,重复等等的目的,你可能在这里有一个很好的总体思路https://en.wikipedia.org/wiki/Hash_table

答案 3 :(得分:1)

尝试查看HashMap实现的接口Java API for Map。第一句话是:

  

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射一个值。