这是一个家庭作业问题,所以我不是在寻找具体的实施,而是更多地了解如何实施以下内容:
我必须创建一个哈希表类,我理解哈希表是如何工作的,但我对它实际上是如何散列对象感到困惑。在我们看到的示例中,我们通常会看到整数存储在哈希表中(为简单起见),并使用value%10
等算法对它们进行哈希处理。
我对此很好,但对以下内容感到困惑。我们被要求编写一个可以接受任何对象并提供插入方法等的类。我不知道如何调用Object%10
,因为我不能只找到对象的模数。考虑到这一点,我不知道用户可以传递给这个类的对象(它可能是他们自己编写的那个),你期望为所有可能的对象编写一个哈希函数?我在这里错过了什么吗?
我已经尝试使用谷歌搜索,但我不确定谷歌是什么,所以我想的不多,谢谢
答案 0 :(得分:2)
Hashcode并不总是value%10
,如果是对象,它是一个使用对象状态派生的数字,即对象的属性。
如果你喜欢上课
public class MyClass {
int a;
int b;
}
然后Hashcode可以很简单
public int hashCode() {
int result = a + b;
return result;
}
答案 1 :(得分:2)
检查the Object
class的方法。 Java中的每个对象都有这些方法。看看其中一个是否可以帮助你。