0

マップのキーのサイズは、あらゆる種類のマップ実装 (例: HashMap) に何らかの影響を与えますか (例: パフォーマンス)?

次の繰り返しは Key オブジェクトのサイズの影響を受けますか?

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 に答える