hashcode(), equals()

2018-12-11  本文已影响0人  Ary_zz

2018-12-11

1、hashCode的存在主要是用于查找的快捷性,为了配合基于散列的集合正常运行,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;

2、如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;

3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点;

4、两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,它们存放在同一个桶里面

equals()

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

有2种情况:

hashCode()

这里的hashCode也有2种情况:

上一篇 下一篇

猜你喜欢

热点阅读