java对象为什么要重写equals方法
**
如我们定义一个规则:如果这两个对象的内容一致,但是这两个对象可能不是同一个引用,也认为这两个对象是相等的,那么就需要重写equals。
**
java是一门面向对象语言,遵循一切皆对象的思想,在默认的比较方法equals中,比较的也是两个对象的引用,而不是对象里的内容。
equals方法来自祖类Object,默认比的是引用地址
如果不重写equals效果如下
这两个对象内容一致,但默认的equals比的是地址,则达不到我们我预期结果
重写equals比较对象内容,若内容一致,则认为相等,使用idea工具自动生成equals
public boolean equals(Object o) {// 若是同一个地址,则一定相等,提高效率if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;User user = (User) o;// 若不是同一地址,内容一致,也认为相等return userid == user.userid && Objects.equals(username, user.username) && Objects.equals(pwd, user.pwd);}
效果
java对象为什么要重写equals方法相关推荐
- Java基础321 - 如何重写equals方法
目录 如何重写equals方法 Pig实体类 测试方法 如何重写equals方法 应用实例: 判断两个Pig对象的内容是否相等,如果两个Pig对象的各个属性都一样,则返回true,反之false. 1 ...
- java——API—— Object类——重写equals方法
重写Object类的equals方法 如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法. Object类的equals方法,默认比较的是两个 ...
- Java拾遗:001 - 重写 equals 和 hashCode 方法
2019独角兽企业重金招聘Python工程师标准>>> 重写equals方法 在Java中Object类是一个具体类,但它设计的主要目的是为了扩展,所以它的所有非final方法,都被 ...
- Java重写equals方法时为什么要重写hashCode方法
在我们平时编写Java代码时,重写equals方法时一定要重写hashCode方法,这是为什么呢? 在讨论这个问题前,我们先看下Object类中hashCode方法和equals方法. hashCod ...
- 【Java基础】重写equals方法详讲
一.重写equals方法 [Java比较学习]重写equals方法的安全写法 1.重写equals方法的两种方式 这里提供两个比较常见的equals重写方法: ● 用instanceof实现重写equ ...
- Java 细品 重写equals方法 和 hashcode 方法
前言 在我们需要比较对象是否相等时,我们往往需要采取重写equals方法和hashcode方法. 该篇,就是从比较对象的场景结合通过代码实例以及部分源码解读,去跟大家品一品这个重写equals方法和h ...
- java 对象重写equals方法_Java如何重写object类的equals方法详解
1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...
- JAVA中重写equals()方法的同时要重写hashcode()方法
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
最新文章
- Visual Studio 2005 Team System下载地址
- 一文图解机器学习的基本算法!
- EXCEL 找出重复的记录 COUNTIF
- 从红旗5.0提及——看Linux的内存办理
- EasyUI combobox
- 小白系列之51单片机的入门速成法
- 405 not allowed什么意思_二驴质问散打:为什么不救天道!面临一个亿赔款?次惑小仙女宣布与可乐分手!...
- 多角度分析平台即服务?PaaS的类型和用例
- I/O(输入/输出)---序列化与反序列化
- GridView类容器中的DropDownList联动
- 面试题9:斐波那契数列
- 北信源管理网页卸载密码_怎么卸载找不到程序的流氓软件?
- LayUI清空下拉框的值
- swift项目第七天:构建访客界面以及监听按钮点击
- springboot starter的一个问题
- 在VS中查看文件是谁签出的
- 3d ListView翻译
- 【学习笔记】《分布式光纤振动传感系统技术的研究与实现--华科--邹**--光学工程》重点笔记
- php爬虫入门之phpspider框架
- 模拟AP与可以访问互联网的网络连接,虚拟出一个“无线路由器”