有人可以解释一下,当重复值放入HashMap
时,幕后会发生什么?
put(k1,v1)
put(k2,v1)
它如何影响记忆?
答案 0 :(得分:4)
绝对没有什么特别的事情发生。创建一个新条目,并根据条目的键将其插入底层结构中的某个位置。 HashMap
条目的值与条目的放置位置或检索方式无关。
为了澄清,将在每个HashMap
Entry
中复制该值。
也许你对这个价值是多么困惑。首先,区分对象,引用值和变量。我们一直在谈论的值是对象的引用。阅读this以了解其适用方法。
HashMap
并不关心价值观。它没有检查它们。它只关心钥匙。所以当你输入相同的值时
map.put(k1,v1);
map.put(k2,v1);
HashMap
将构造两个Entry
对象,这两个对象将保存(并因此复制)v1
的值,并将其存储在其基础结构中。