1

ウェブページhttp://www.javamex.com/tutorials/collections/hash_codes_advanced.shtmlによると

ハッシュ コードはオブジェクトを一意に識別しません。それらは単に一致する項目の選択肢を絞り込むだけですが、通常の使用では、複数のオブジェクトが同じハッシュ コードを共有する可能性が高いと予想されます。したがって、マップまたはセットでキーを探す場合、実際のキー オブジェクトのフィールドを比較して一致を確認する必要があります。」

まず、これは has マップで使用されるキーが複数の値を指している可能性があることを意味しますか? そうだと思います。

このような場合は。「常に正確な」ハッシュマップまたは同様のキー、値オブジェクトを作成するにはどうすればよいですか?

私のキーは String である必要があり、私の値も String である必要があります..約 4,000 から 10,000 のキーと値のペアが必要です..

4

2 に答える 2

3

まず、注意してください: Java の HashMaps は機能します。ハッシュ関数が正しく実装されていると仮定すると、同じキーに対して常に同じ値が得られます。

ここで、ハッシュ マップでは、キーのハッシュ コードによって、値が配置されるバケットが決まります (この用語に慣れていない場合は、ハッシュ テーブルについて読んでください)。マップのパフォーマンスは、ハッシュ コードがどの程度分散されているか、および各バケット内の値の数がどの程度バランスが取れているかに依存します。を使っているのでString、安心してください。HashMap は「常に正確」になります。

于 2012-06-30T05:39:38.923 に答える
3

標準のハッシュマップは一意のキーを保証します。ハッシュコードはキーと同等ではありません。これは、可能な値のセットを特定のハッシュコードを持つオブジェクト (この場合は文字列) にすばやく減らす手段にすぎません。

于 2012-06-30T05:32:55.807 に答える