0

Map 的 Key 的大小在任何类型的 Map 实现(例如 HashMap)中是否有任何影响(例如在性能方面)?

下面的迭代会受到 Key 对象的 Size 的影响吗?

Map<Object, Object> map = new HashMap<Object, Object>();
//...
for(Map.Entry<Object, Object> entry : map.entrySet())
{
    //...
}
4

3 回答 3

1

不,关键对象的大小与迭代地图的性能无关。

请注意,非原始类型的变量在 Java 中始终是引用(它们不是对象本身,如在 C++ 中)。引用指向小对象还是大对象都没有关系。

于 2012-10-17T14:56:44.960 回答
0

无论如何,您只能将引用用作键,因此没关系。

于 2012-10-17T14:57:05.040 回答
0

鉴于对象只能包含原语和对对象的引用,我不太明白您所说的对象的“大小”是什么意思。

我怀疑对于 HashMap,该hashCode()函数会在一定程度上影响性能。这是否取决于密钥的大小取决于hashCode(). 类似的附带条件适用于该equals()方法。

于 2012-10-17T14:57:31.300 回答