プログラムでの論理的な目的を除いて類似している 2 つの項目のセットがあるとします。それらに2つのハッシュを割り当てる方が良いプログラミング方法ですか、それとも目的のために1つのハッシュのみを使用する必要がありますか?
質問する
38 次
2 に答える
0
それらを同じハッシュテーブルに保存すると、(おそらく小さいか存在しない) 上書きのリスクが発生します。たとえば、名と姓 (両方の文字列) を保存しているとします。ファーストネームが「Jones」の人物と、ラストネームが「Jones」の人物がいる可能性があります。
上記が不可能な場合、単一のハッシュ テーブルを使用できない技術的な理由はありません。同じ値にハッシュされるアイテムは、同じバケットにマップされる異なるハッシュ値を持つ他のアイテムと一緒に同じバケットに格納されますが、ハッシュの衝突後に実際の等価性を確認する限り、問題ありません。
そうは言っても、論理項目を結合する非常に強い理由がなくても、論理項目を独自のハッシュテーブルに分離することをお勧めします。
- それらを扱うコードは、おそらく書きやすく、維持しやすいでしょう。
- 問題のデバッグが容易になります。
- ハッシュ テーブルが小さいほど、バケットあたりのアイテム数が少なくなり、パフォーマンスがわずかに向上します。
于 2013-04-15T21:01:08.257 に答える
0
アイテムのセットが同じ場合、ハッシュも同じである必要があります。
レンチを使用してボルトを締めたり、窓を壊したりできると言っているようなものです。したがって、2 つの異なるオブジェクトのように動作する必要がありますが、これは真実ではありません。区別しているのはオブジェクト自体ではなく、使用方法であるためです。
于 2013-04-14T06:29:41.507 に答える