gpt4 book ai didi

java - 将重复键放入 HashMap 时会发生什么?

转载 作者:bug小助手 更新时间:2023-10-28 10:39:40 26 4
gpt4 key购买 nike

如果我将同一个键多次传递给 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"));

我们得到肯定不是一个

案例 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"));

我们得到一个

但是其他值会怎样呢?我正在向一个学生教授基础知识,我被问到这个问题。 Map 是否像一个桶,其中最后一个值被引用(但在内存中)?

最佳答案

根据定义,put 命令替换与映射中给定键关联的先前值(概念上类似于基本类型的数组索引操作)。

map 只是删除了对值的引用。如果没有其他东西持有对该对象的引用,那么该对象就有资格进行垃圾回收。此外,Java 返回与给定键关联的任何先前值(或 null 如果不存在),因此您可以确定存在什么并在必要时维护引用。

更多信息在这里:HashMap Doc

关于java - 将重复键放入 HashMap 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669885/

26 4 0
文章推荐: java - Collections.emptyList() 返回一个 List?