HashCode方法的作用

改写equals时总是要改写hashCode

java.lnag.Object中对hashCode的约定:

1、 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,则对该对象调用hashCode方法多次,它必须始终如一地返回同一个整数。

2、 如果两个对象根据equals(Object o)方法是相等的,则调用这两个对象中任一对象的hashCode方法必须产生相同的整数结果。

3、如果两个对象根据equals(Object o)方法是不相等的,则调用这两个对象中任一个对象的hashCode方法,不要求产生不同的整数结果。但如果能不同,则可能提高散列表的性能。


两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页