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 回答