Java重写equals方法必须重写hashcode方法的意义

重写equals方法要注意:若两个对象equals判断为true时,则这两个对象的hashcode也要必须相等。

 

假设:

有对象a,和对象b, 

a.equals(b) 为true,

a.hashcode()  与b.hascode()不相等。

------------------------------------------------------------------------------------------------------

HashMap myMap = new HashMap();

String targetObj = "字符串a";
myMap.put(a, targetObj);

Object o = myMap.get(b) ; //取不出来,会等于空。如果a.hashcode()  与b.hascode()相等,则可以取出。

------------------------------------------------------------------------------------------------------

 HashMap的查找数据实现:

Java重写equals方法必须重写hashcode方法的意义_第1张图片

 

因此Java重写equals方法必须重写hashcode方法。

 

 

你可能感兴趣的:(Java重写equals方法必须重写hashcode方法的意义)