Map 的 Key 的大小在任何类型的 Map 实现(例如 HashMap)中是否有任何影响(例如在性能方面)?
下面的迭代会受到 Key 对象的 Size 的影响吗?
Map<Object, Object> map = new HashMap<Object, Object>();
//...
for(Map.Entry<Object, Object> entry : map.entrySet())
{
//...
}
不,关键对象的大小与迭代地图的性能无关。
请注意,非原始类型的变量在 Java 中始终是引用(它们不是对象本身,如在 C++ 中)。引用指向小对象还是大对象都没有关系。
无论如何,您只能将引用用作键,因此没关系。
鉴于对象只能包含原语和对对象的引用,我不太明白您所说的对象的“大小”是什么意思。
我怀疑对于 HashMap,该hashCode()
函数会在一定程度上影响性能。这是否取决于密钥的大小取决于hashCode()
. 类似的附带条件适用于该equals()
方法。