重写equals方法时为什么必须重写hashcode方法

2024-12-04 19:18:40
推荐回答(2个)
回答1:

有个规定 即相同的对象必须返回的相同的哈希码 重写hashcode就是为了 满足这个规范

回答2:

因为关系到采用hash算法的集合;比如说当对象作为hashMap的key时。

两个对象必须保证equals为true,hashcode相等;但hashcode相等,equals不必返回true

你可以让hashcode返回常量,但是这样的话hash算法的效率就是线性查找了。