3

これは宿題の質問なので、特定の実装を探しているわけではありませんが、以下を実装する方法をより理解しています。

ハッシュ テーブル クラスを作成する必要があります。ハッシュ テーブルがどのように機能するかは理解していますが、実際にオブジェクトをハッシュする方法については混乱しています。これまで見てきた例では、通常、整数がハッシュ テーブルに格納され (簡単にするために)、 などのアルゴリズムを使用してハッシュされvalue%10ます。

私はこれで大丈夫ですが、次のことについて混乱しています。任意のオブジェクトを取り、挿入などのメソッドを提供できるクラスを作成するように依頼されましたObject%10。オブジェクトのモジュラスを見つけることができないことを考えると、どのように呼び出すことができるかわかりません。これを念頭に置いて、ユーザーがこのクラスに渡すことができるオブジェクトの種類 (ユーザーが自分で作成したものである可能性があります) を知りませんが、すべての可能なオブジェクトに対してハッシュ関数をどのように記述する必要がありますか? ここで何か不足していますか?

私はグーグルを試しましたが、グーグルに何をすべきか正確にはわからないので、あまり思いつきません、ありがとう

4

2 に答える 2

2

ハッシュコードは常に である必要はありませんvalue%10。オブジェクトの場合、オブジェクトの状態、つまりオブジェクトの属性を使用して導出された数値です。
あなたが好きなクラスなら

public class MyClass {
    int a;
    int b;
}

ハッシュコードは次のように単純にすることができます

public int hashCode() {
    int result = a + b;
    return result;
}
于 2013-10-18T09:51:53.097 に答える
2

クラスObjectメソッドを確認してください。Java のすべてのオブジェクトには、これらのメソッドがあります。それらのいずれかがあなたを助けることができるかどうかを確認してください。

于 2013-10-18T09:53:19.693 に答える