[面试官问这个问题,与哈希码有关的大多数答案都用于存储与检查对象相等的存储桶。
还有其他的一般用例或方案,其中哈希码是有益的并且可以在例行程序中使用吗?
最近,我在抛出异常"Composite-id class does not override hashCode()"
的地方使用了JPA,但是再次由实现类使用。
class a {
public int hashCode() {
}
}
class b {
public static void main(String[] str) {
//In what ways can i use hashcode here?
}
}
面试题中的一个小语义错误。哈希码不用于检查相等性,而是用于检测不平等性。如果哈希码不同,则保证对象不相等。如果代码相等,则对象可能相等,需要使用equals-method进行检查。
也就是说,如果哈希码被缓存,则可以用来加速equals方法。