Java重写equals,hashCode和散列关系

Java判定对象相同

equals方法是用来判断两个对象是否"相同":如果没有进行重写 那么默认默认情况下equals方法的实现就是比较两个对象是否一样。

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

但大多数的对象都重写了equals方法,重写的方法大多数比较两个对象中的内容是否相同。

boolean equals(Object obj){
  if(obj instanceof Name){
       if(obj.name=this.name){
        return true;
       }else{
        return false;
       }
  }
 return false;
}

HashCode

代表对象的内存地址.

对象加入散列

一个对象加入散列时,首先会判断它的hashCode是否一致,如果一致直接放入到散列中。如果hashCode不一致,会比较equals.如果equals不一致,也可以加入到散列。否则不能加入散列中。也就是说。要想安全的将一个对象放入散列,需要同时重写hashCode和equals方法。并且中途不能修改他们的条件
https://juejin.im/post/5a7c5b285188257a5a4ca224

你可能感兴趣的:(Java重写equals,hashCode和散列关系)