当将重复的密钥放入HashMap时会发生什么?

问题:

如果我将相同的密钥多次传递到HashMapput方法,原始值会发生什么?如果价值重复呢?我没有找到任何文件。
情况1:重写密钥的值

Map mymap = new HashMap();
mymap.put("1","one");
mymap.put("1","not one");
mymap.put("1","surely not one");
System.out.println(mymap.get("1"));

我们得到surely not one
情况2:重复的值

Map mymap = new HashMap();
mymap.put("1","one");
mymap.put("1","not one");
mymap.put("1","surely not one");
// The following line was added:
mymap.put("1","one");
System.out.println(mymap.get("1"));

我们得到one
但其他价值观会发生什么?我正在教一个学生的基础知识,我被问到这个。 Map像一个桶,最后一个值被引用(但在内存中)?

回答:

根据定义,put命令将替换与地图中给定键相关联的上一个值(概念上像原始类型的数组索引操作)。
该地图简单地删除其对该值的引用。如果没有其他东西保留对该对象的引用,那么该对象就可以进行垃圾回收。此外,Java返回与给定键相关联的任何先前值(如果不存在则返回null),因此,如果需要,您可以确定所在的内容并保留引用。
更多信息:HashMap Doc

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What happens when a duplicate key is put into a HashMap?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 3