将重复值放入hashmap

时间:2014-10-05 19:42:24

标签: java memory hashmap

有人可以解释一下,当重复值放入HashMap时,幕后会发生什么?

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

它如何影响记忆?

1 个答案:

答案 0 :(得分:4)

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

为了澄清,将在每个HashMap Entry 中复制该值。

也许你对这个价值是多么困惑。首先,区分对象,引用值和变量。我们一直在谈论的对象的引用。阅读this以了解其适用方法。

HashMap并不关心价值观。它没有检查它们。它只关心钥匙。所以当你输入相同的值时

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

HashMap将构造两个Entry对象,这两个对象将保存(并因此复制)v1的值,并将其存储在其基础结构中。