hashCode()返回与hashTable中的键之间的区别是什么?

时间:2017-03-14 21:37:17

标签: java hash hashtable hashcode

我必须为完成家庭作业编写一个完美的哈希表,但我很难理解:

hashCode()返回与hashTable中的键之间的区别是什么,因为我必须实现方法getKey(),但我只知道对象x的索引由((a)给出* x.hashCode()+ b)mod p)mod m当a和b是随机整数时,pa素数和m表的大小。

由于索引是由H(键)给出的,这意味着x.hashCode()是我认为的关键,但我不确定因为键和值(只有整数)是相同的

1 个答案:

答案 0 :(得分:0)

hashcode()方法生成在特定实例上应用对象的散列方法的预期结果,而键是对象本身。

请记住,对象可以是另一个复杂/复合对象(比如另一个HashMap)。只要合理实施hashcode()equals(),它就可以正常使用。

如果两个实例生成相同的hashcode()结果,并且equals()根据该结果进行比较(保留类型检查,但它们当然也是测试的一部分),对象是被视为平等/相同。

一旦你开始使用TreeMaps(其中相等不是基于hashcode / equality,而是基于排序,ComparableComparator s),这会变得非常有趣