equals()方法
1. 自反性:A.equals(A)要返回true.
2. 对称性:如果A.equals(B)返回true, 则B.equals(A)也要返回true.
3. 传递性:如果A.equals(B)为true, B.equals(C)为true, 则A.equals(C)也要为true. 说白了就是 A = B , B = C , 那么A = C.
4. 一致性:只要A,B对象的状态没有改变,A.equals(B)必须始终返回true.
5. A.equals(null) 要返回false.
//测试

public class Person {private int age;private String name;  @Overridepublic boolean equals(Object obj){if(this == obj){return true;}else if(!(obj instanceof Person)){return false;}else{Person p = (Person) obj;return p.name.equals(name) && p.age == age;}}@Overridepublic int hashCode(){int result = 17;result = result * 31 + age;result = result * 31 + name.hashCode();return result; }public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}}//验证,如果不重写hashCode(),输出false;
   public static void main(String[] args) {Person p = new Person();p.setAge(3);p.setName("ff");Person p1 = new Person();p1.setAge(3);p1.setName("ff");Set<Person> set = new HashSet<Person>();  set.add(p);System.out.println(set.contains(p1));}

 

转载于:https://www.cnblogs.com/start-fxw/p/7299261.html

重写equals和hashCode相关推荐

  1. hash 值重复_程序员:判断对象是否重复,不重写equals和hashcode不行吗?

    前言 大家都知道如果要判断一个对象是否相同,都要在对象实体中重写equals和hashcode方法,那你知道为什么重写这两个方法就能根据自己定义的规则实现相等比较了吗? 今天带大家来了解一下equal ...

  2. 不同时重写equals和hashCode又会怎样?

    作者:flyhero 微信公众号:码上实战(ID:Push-Code) 可能一问到equals和hashCode相关的问题,就会有人讲他们的自反性,对称性,一致性,传递性等几条约定了,此时我不得不佩服 ...

  3. Java:重写equals()和hashCode()

    http://blog.csdn.net/ansel13/article/details/5437486 很基础的东西就是由于没上心,三番五次地出错,这次好好总结下吧. 众所周之,String .Ma ...

  4. 在Java里重写equals和hashCode要注意什么问题

    问题:在Java里重写equals和hashCode要注意什么问题 重写equals和hashCode有哪些问题或者陷阱需要注意? 回答一 理论(对于语言律师或比较倾向于数学的人): equals() ...

  5. 为什么使用HashMap需要重写hashcode和equals方法_不同时重写equals和hashCode又会怎样?听听过来人的经验...

    可能一问到equals和hashCode相关的问题,就会有人讲他们的自反性,对称性,一致性,传递性等几条约定了,此时我不得不佩服,这么多约定竟然都能记得,但我不知道你是不是真的理解呢. 一.我不同时重 ...

  6. 运用简单的超市购物车系统,理解重写equals、hashcode的意义

    更多干货见博主个人网站:https://blog.zhenglin.work 运用简单的超市购物车系统,理解重写equals.hashcode的意义,以及map的学习 商品类: 先编写一个商品类,要有 ...

  7. Java重写equals()和hashCode()

    1.何时需要重写equals() 当一个类有自己特有的 "逻辑相等"概念(不同于对象身份的概念). 2.设计equals() [1]使用instanceof操作符检查 " ...

  8. Java重写equals和hashCode方法

    在日常程序中,我们习惯使用equals方法来比较两个对象,继承自Object的equals方法默认的比较两个对象的内存地址(String类重写了equals方法,比较字符串的内容).假如我们创建了两个 ...

  9. Java拾遗:001 - 重写 equals 和 hashCode 方法

    2019独角兽企业重金招聘Python工程师标准>>> 重写equals方法 在Java中Object类是一个具体类,但它设计的主要目的是为了扩展,所以它的所有非final方法,都被 ...

  10. 为什么重写equals()和hashcode()

    首先写个例子 public class TestTest{String name ;TestTest(String name){this.name = name;} public static voi ...

最新文章

  1. 自然语言处理(NLP)之英文单词词性还原
  2. linux deploy ENV 目录,手机安装linux deploy 安装和配置
  3. ubuntu16.04安装retext,第一行图标flie,edit,help没有,其它图标也不显示?
  4. MYSQL——常用运算符和函数
  5. chrome扩展推荐 - 原生chrome浏览器小窗口看视频 - PIP Video
  6. 标准配置的UBUNTU 11.10 RUBY VMWARE 镜像,手工MOD(ZSH_RVM_RAILS_VIM)
  7. github详细搜索
  8. BugkuCTF-MISC题这是一张单纯的图片
  9. java实现日期让随动变_java工具类(四)之实现日期随意跳转
  10. ASP.NET获取真正的客户端IP地址的6种方法
  11. MySQL笔记(二)基础的增删改查
  12. C++各个算数类型占用的字节数
  13. php备份远程系统快照,ZFS snapshot高级篇之快照备份
  14. Hadoop入门集群环境搭建
  15. 前端工程师行业现状怎么样?前景如何?
  16. win10下出现.net framework 3.5错误代码0x800F081F的问题
  17. 转帖:经济危机来临时的上海MM生活
  18. 《JeolOnSoftware》
  19. php怎么把多个pdf拼接成一个,如何把PDF文件拼接成一个?
  20. Jenkins安装并配置加速器

热门文章

  1. Linux内核链表之共享双链表
  2. python 计算最后一个单词的长度
  3. python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
  4. oracle 分布键,DWS使用技巧:根据ORACLE主键和唯一健批量修改DWS分布列字段的方法...
  5. synchronized()_这篇文章带你彻底理解synchronized关键字
  6. html 判断页面支持canvas,HTML5 Canvas之测试浏览器是否支持Canvas的方法
  7. linux安装mysql5.7.25教程,Linux安装mysql-5.7.25
  8. 自主云服务器处理器_云服务器哪家的CPU最便宜且好用
  9. 本月 上月 php,显示本月,上月,今天,今年以及各时间起点与
  10. 从脸部识别到火星机器人,正在改变世界的计算机视觉