繁体   English   中英

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

[英]What's the difference between the return of hashCode() and a key in a hashTable?

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

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

由于索引是由H(key)给出的,所以我认为x.hashCode()是键,但是我不确定,因为键和值(仅整数)相同。

hashcode()方法产生将对象的哈希方法应用于特定实例的预期结果,而键是对象本身。

请记住,对象可以是另一个复杂/复合对象(例如另一个HashMap)。 只要它具有hashcode()equals()的合理实现,它就可以正常工作。

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

一旦开始使用TreeMap,这将变得非常有趣(相等不是基于哈希码/相等,而是基于排序, ComparableComparator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM