如何在Java中使用具有唯一键的HashMap? 或者甚至在HashMap中使用唯一键是否有意义,或者默认情况下键是唯一的? 我是新手。 THX
答案 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,它在幕后做了什么是(只是概念上):
因此,通过构造,键被映射到一个和一个唯一的数组条目。
请注意,它实际上比这更复杂:我忽略了碰撞处理,重复等等的目的,你可能在这里有一个很好的总体思路https://en.wikipedia.org/wiki/Hash_table
答案 3 :(得分:1)
尝试查看HashMap
实现的接口Java API for Map。第一句话是:
将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射一个值。