如果我多次将相同的键传递给HashMap的put方法,那么原始值会怎样?如果值重复出现该怎么办?我没有找到任何文档。
HashMap
put
情况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。
one
但是其他值怎么办?我在向学生教授基础知识,有人问我。是Map等,其中最后一个值引用(但在内存中)水桶?
Map
根据定义,该put命令将替换与映射中给定键相关联的先前值(概念上类似于对原始类型的数组索引操作)。
映射只是将其引用删除到该值。如果没有其他内容引用该对象,则该对象将有资格进行垃圾回收。另外,Java返回与给定键关联的任何先前值(null如果不存在,则返回任何值),因此你可以确定其中的值并在必要时维护引用。
null