マップのキーのサイズは、あらゆる種類のマップ実装 (例: HashMap) に何らかの影響を与えますか (例: パフォーマンス)?
次の繰り返しは Key オブジェクトのサイズの影響を受けますか?
Map<Object, Object> map = new HashMap<Object, Object>();
//...
for(Map.Entry<Object, Object> entry : map.entrySet())
{
//...
}
いいえ、キーオブジェクトのサイズは、マップの反復のパフォーマンスには関係ありません。
非プリミティブ型の変数は常にJavaでは参照であることに注意してください(C ++のようにオブジェクト自体ではありません)。参照が小さいオブジェクトを指しているか大きいオブジェクトを指しているかは関係ありません。
とにかくキーとして参照を使用することしかできないので、それは問題ではありません。
オブジェクトにはプリミティブとオブジェクトへの参照しか含めることができないため、オブジェクトの「サイズ」が何を意味するのかはよくわかりません。
HashMapの場合、このhashCode()
関数はパフォーマンスにある程度影響を与えると思います。これがキーのサイズに依存するかどうかは、の実装に依存しhashCode()
ます。同様の条件がequals()
メソッドに適用されます。