java - 将重复值放入 hashmap

标签 java memory hashmap

谁能给我解释一下当将重复值放入 HashMap 时幕后发生了什么?

put(k1,v1)
put(k2,v1)

它是如何影响内存的?

最佳答案

绝对没有什么特别的事情发生。根据条目的键创建一个新条目并将其插入底层结构中的某处。 HashMap 条目的值与条目的放置位置或检索方式无关。

澄清一下,值将被复制到每个 HashMap Entry 中。

也许您对这个值是什么感到困惑。首先,区分对象、引用值和变量。我们一直在讨论的对对象的引用。阅读this了解如何应用。

HashMap 不关心值。它不检查它们。它只关心键。所以当你输入相同的值时

map.put(k1,v1);
map.put(k2,v1);

HashMap 将构造两个 Entry 对象,它们都将保存(并因此复制)v1 的值,并将它们存储在它的底层结构。

关于java - 将重复值放入 hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206476/

相关文章:

c++ - 内存处理(即函数 Release)究竟如何与 Direct3D 一起工作?

java - ViewFlipper 中动画的 OutOfMemory

arrays - 快速数组/集合中特定实例的索引

java - Grails 密码使用 rsa 加密

java - 在 int 函数中返回 2 个整数

java - jsp中如何将对象类型转换为int

java - 以相同对象作为键值的映射

java - 从 JDK 中删除了 Swing?

java - 如何读写一个HashMap到一个文件?

java - 存储 HashMap 值与引用值的效率