如果两个对象相等,那么两个对象的hashcode 是相等的,并且 对两个对象分别调用equals方法返回true。
但是倘若两个对象的hashcode相等,则两个对象未必相等。这是因为不同的对象通过散列算法,可能会得到相同的hashcode。
重写equals方法的话,需要保证两个对象的hashcode相等,这时就需要对Object的hashcode()方法进行重写,否则对两个相同的对象调用equals方法,并不会反回true。
如果两个对象相等,那么两个对象的hashcode 是相等的,并且 对两个对象分别调用equals方法返回true。
但是倘若两个对象的hashcode相等,则两个对象未必相等。这是因为不同的对象通过散列算法,可能会得到相同的hashcode。
重写equals方法的话,需要保证两个对象的hashcode相等,这时就需要对Object的hashcode()方法进行重写,否则对两个相同的对象调用equals方法,并不会反回true。