java类重写equals时,为什么同时把hashCode也重写
时间: 2024-05-25 15:12:59 浏览: 54
为什么重写equals方法,还必须要重写hashcode方法
在 Java 中,如果你重写了一个类的 equals 方法,你也应该重写 hashCode 方法。这是因为在 Java 中,hashCode 方法的返回值用于判断两个对象是否相等。
如果两个对象相等,那么它们的 hashCode 方法的返回值必须相等。否则,如果你将这些对象添加到哈希表中,哈希表的性能会变得非常糟糕,因为哈希表可能会将这些对象插入到不同的桶中,并且每次需要比较它们是否相等都需要执行 equals 方法。
因此,当你重写 equals 方法时,你应该把 hashCode 方法也一起重写,以确保当这些对象被用作哈希表的键时,它们的 hashCode 值是一致的。
阅读全文