谁能给我解释一下当将重复值放入 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/