本文主要是介绍Java重写equals方法必须重写hashcode方法的意义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
重写equals方法要注意:若两个对象equals判断为true时,则这两个对象的hashcode也要必须相等。
假设:
有对象a,和对象b,
a.equals(b) 为true,
a.hashcode() 与b.hascode()不相等。
------------------------------------------------------------------------------------------------------
HashMap<Object, Object> myMap = new HashMap<Object, Object>();
String targetObj = "字符串a";
myMap.put(a, targetObj);
Object o = myMap.get(b) ; //取不出来,会等于空。如果a.hashcode() 与b.hascode()相等,则可以取出。
------------------------------------------------------------------------------------------------------
HashMap的查找数据实现:
因此Java重写equals方法必须重写hashcode方法。
这篇关于Java重写equals方法必须重写hashcode方法的意义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!