hashCode()方法的作用?

hashCode()方法与equals()方法相似,都是来自java.lang.Object类的方法,都允许用户定义的子类重写这两个方法。

一般来说,equals这个方法是给用户调用的,如果你想根据自己的业务规则来判断2个对象是否相等,你可以重写equals()方法。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。

hashCode()方法通常是给其他类来调用的,比如当我们要把两个对象放入HashSet时,由于HashSet要求两个对象不能相等,而HashSet判断两个对象是否相等的标准是通过equals()比较返回false、或两个对象的hashCode()方法返回值不相等——只要满足任意一个条件都可会认为两个对象不相等。

从这个角度来看,我们可以把hashCode()方法的返回值当成这个对象的“标识符”,如果两个对象的hashCode()相等,即可认为这两个对象是相等的。因此当我们重写一个类的equals()方法时,也应该重写它的hashCode()方法,而且这两个方法判断两个对象相等的标准也应该是一样的。

Java Program!
原文地址:https://www.cnblogs.com/programb/p/14068418.html