我正在阅读下面引用的一篇文章中的段落,题为-Java 理论与实践:哈希它 - 有效且正确地定义 hashCode() 和 equals() http://www.ibm.com/developerworks/java/library/j-jtp05273/index.html
定义平等Object 类有两个方法用于推断对象的身份:equals() 和 hashCode()。在
一般来说,如果您重写这些方法之一,则必须重写这两个方法,
因为他们之间必须存在重要的关系
保持。特别是,如果两个对象根据
equals() 方法,它们必须具有相同的 hashCode() 值(虽然
反之则不然).[重点是我添加的]
我的问题与该段的后半部分有关“尽管相反通常情况并非如此”。一个类的两个不同实例如何具有相同的 hashCode 但不相等?
简单来说hashcode()是一个通过某种公式生成哈希的函数,因此可能会出现一些冲突,两个不同的值可能会产生相同的hashcode。
如果我简单地通过取模 6 来计算哈希码,那么两个不同的值可能具有相同的哈希码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)