在Java中散列对象?

时间:2013-10-18 09:50:19

标签: java hash

这是一个家庭作业问题,所以我不是在寻找具体的实施,而是更多地了解如何实施以下内容:

我必须创建一个哈希表类,我理解哈希表是如何工作的,但我对它实际上是如何散列对象感到困惑。在我们看到的示例中,我们通常会看到整数存储在哈希表中(为简单起见),并使用value%10等算法对它们进行哈希处理。

我对此很好,但对以下内容感到困惑。我们被要求编写一个可以接受任何对象并提供插入方法等的类。我不知道如何调用Object%10,因为我不能只找到对象的模数。考虑到这一点,我不知道用户可以传递给这个类的对象(它可能是他们自己编写的那个),你期望为所有可能的对象编写一个哈希函数?我在这里错过了什么吗?

我已经尝试使用谷歌搜索,但我不确定谷歌是什么,所以我想的不多,谢谢

2 个答案:

答案 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中的每个对象都有这些方法。看看其中一个是否可以帮助你。