Java 重写equals()方法时为什么要重写hashcode()?
为什么每次重写Java 重写equals()方法时为什么要重写hashcode()?,java,equals,hashcode,Java,Equals,Hashcode,为什么每次重写equals()方法时都要重写hashCode()方法?据我所知,他们两人似乎实现了不同的目的hashCode()方法在哈希表中用于确定键的相等性。但是equals()方法用于确定两个对象的相等性。如果根据equals方法两个对象相等,则它们的哈希代码也必须相等。否则,哈希表中的查找将失败。您的两条语句都有些错误。这个问题已经被问过几百次了;您将使用google获得更多信息。仅仅因为两个值散列到同一个值并不意味着它们相等,您需要检查它们是否相等。您不需要覆盖这两个值,但实际上很容易
equals()
方法时都要重写hashCode()
方法?据我所知,他们两人似乎实现了不同的目的hashCode()
方法在哈希表中用于确定键的相等性。但是equals()
方法用于确定两个对象的相等性。如果根据equals
方法两个对象相等,则它们的哈希代码也必须相等。否则,哈希表中的查找将失败。您的两条语句都有些错误。这个问题已经被问过几百次了;您将使用google获得更多信息。仅仅因为两个值散列到同一个值并不意味着它们相等,您需要检查它们是否相等。您不需要覆盖这两个值,但实际上很容易做到,因为现代IDE支持为它们生成代码。