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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容