当你在Java中重写了equals()方法后,通常建议你也应该重写hashCode()方法。这是基于Java集合框架的设计原则,具体来说是基于Object类中的equals()和hashCode()方法之间的约定。以下是为什么需要这样做的一些关键原因:
一致性原则:例如就hashMap来说如果两个对象根据equals(Object obj)方法是相等的,那么它们的hashCode()值必须相同,如果hashCode不一致,可能会被不会被放入哈希表的同一个桶中,导致查找失败。