当前位置: 首页 > 面试题库 >

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

轩辕庆
2023-03-14
问题内容

如果我多次将相同的键传递给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中输入一个键和值,并且基于键hashcode生成的索引大于15,并且映射大小仍然小于阈值(即12),会发生什么? 提前谢谢。

  • 我有一个具有两列主键的表。 未捕获的异常“PDOException”,包含消息“SQLSTATE[23000]”:完整性约束违反:1062中键“Primary”的重复项“157-433”... 为什么它不只是更新现有的(157,433)-行?

  • 问题内容: 我当前正在从文本文件中读取200万行,如上一个问题中所述 。Java读取200万行文本文件的最快方法 现在,我将这些信息存储到HashMap中,并希望通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法正确吗? 问题答案: HashMap hashMap = new HashMap (); TreeMap treeMap = new TreeMap (); tre

  • 我生成了一个私人PKCS#12密钥,然后将其转换为PEM格式,并将其发送到iPhone应用程序。我想把这个私钥保存在iPhone钥匙链中。 首先,我删除了像“BEGIN RSA PRIVATE KEY”这样的标头。然后我将其其余部分转换为。然后,使用这样的代码: Swift中的CFDictionaryRef问题 我能够从这个私钥中获取。 现在我想知道如何使用将此插入钥匙串?

  • 编辑:没有必要的变通方法。使用上述代码可以将外部生成的密钥导入到Android Keystore中。

  • 我一直在寻找将键绑定附加到JButton的答案,但仍然没有成功。我有以下由两个类组成的简单程序。我尝试了几种方法使用getInputMap()和getActionMap(),但都没有成功。我希望它执行以下操作:当我按键盘上的键“1”时,它会按JButton btn1,当我按键“2”时,它会按JButton btn2(因此JLabel上会出现1或2)。 //类1:// 更新:(我还没有15岁的名声,