hashCode()与equals()

equals()方法详解

equals()方法是用来判断其他的对象是否与该对象相等。
equals()方法在object类中定义如下:

public boolean equals(Object obj) {  
    return (this == obj);  
}  

很明显是对两个对象的地址值进行比较,但是,String,Math,Integer,Double等这些封装类在使用equals()方法时,已经覆盖了object类中的equals()方法。

hashCode()方法详解

hashCode()方法给对象返回一个hash code值。
性质:
1.在一个java应用执行期间,如果一个对象提供给equals做比较的信息没有被修改的话,该对象多次调用hashCode()方法,该方法必须始终如一返回同一个Integer.
2.如果两个对象根据equals(Object)方法时相等的,那么调用二者各自的hashCode()方法必须产生同一个integer结果。
3.并不要求根据equals()方法不相等的两个对象,调用二者各自的hashCode()方法必须产生不同的integer结果。

总结

1.在集合查找时,hashcode能大大降低对象比较次数,提高查找效率。
2.相等的对象必须具有相等的hash码
3.如果两个对象hash码相等,但他们并不一定相等。

你可能感兴趣的:(hashCode()与equals())