重写equals方法

我们都知道,如果不对equals方法进行重写的话,那么它默认比较的就是两个对象的地址值是否是一样的。但是我们往往需要比较的是对象的内容是否是一样的,除了几个内置重写了equals方法的类型,我们写的bean一般都要自己重写equals方法才能让它比较的是对象的内容。

重写equals方法示例:

User.java

public class User {String name;Integer id;@Overridepublic boolean equals(Object obj) {// 首先判断传进来的obj是否是调用equals方法对象的this本身,提高判断效率if (obj == this) {return true;}// 判断传进来的obj是否是null,提高判断效率if (obj == null) {return false;}// 判断传进来的obj是否是User对象,防止出现类型转换的异常if (obj instanceof User) {User user = (User) obj;boolean flag = this.name.equals(user.name) && this.id == user.id;return flag;}// 如果没有走类型判断语句说明两个比较的对象它们的类型都不一样,结果就是false了return false;} ....//get\set 方法
}

测试方法:

@Testpublic void test2() throws Exception {System.out.println("------------------------------------------");User user=new User("李三",12);User user1=new User("李三",12);System.out.println(user.equals(user1)+".....");}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zud5oGzp-1620872912829)(img/1620872862010.png)]

如何重写equals方法相关推荐

  1. JAVA中重写equals()方法的同时要重写hashcode()方法

    object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...

  2. 重写 equals 方法就一定要重写 hashCode 方法?其实有个前提

    作者 l 会点代码的大叔(CodeDaShu) 如果问到 == 和 equals 的区别,相信很多程序员同学都能脱口而出:一个是判断地址,一个是判断内容. 但是如果继续追问:"你重写过 eq ...

  3. 重写equals方法的hashcode_Java equals 和 hashCode 的这几个问题可以说明白吗?

    前言 上一篇文章 如何妙用Spring 数据绑定机制,灵魂追问 环节留下了一个有关 equals 和 hashcode 问题 .基础面试经常会碰到与之相关的问题,这不是一个复杂的问题,但很多朋友都苦于 ...

  4. hashcode相等的两个对象一定相等吗_为什么重写 equals方法时一定要重写hashCode方法?...

    推荐阅读: 一线架构师总结SpringBoot,Cloud,Nginx与Docker,不信你搞不懂 47天洒热血复习,我终于"挤进"了字节跳动(附面经+学习笔记) 五年时间,从蘑菇 ...

  5. 重写equals方法时必须重写hashcode方法吗

    重写equals方法时必须重写hashcode 有规范: 1,当obj1.equals(obj2) 为 true 时,obj1.hashCode() == obj2.hashCode() 2,当obj ...

  6. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  7. ArrayList的remove方法(重写equals方法) 与LinkedList的常用操作

    package C12_18;import java.util.ArrayList;public class joy {public static void main(String[] args) { ...

  8. [转载] 向集合中添加自定义类型--建议在自定义类型的时候要重写equals方法

    参考链接: Java重写equals方法 package com.bjpowernode.t01list; import java.util.ArrayList; /* * 向集合中添加自定义类型 * ...

  9. Java重写equals方法时为什么要重写hashCode方法

    在我们平时编写Java代码时,重写equals方法时一定要重写hashCode方法,这是为什么呢? 在讨论这个问题前,我们先看下Object类中hashCode方法和equals方法. hashCod ...

  10. 重写equals方法---java

    重写equals方法---java /*** 重写equals方法*/ public class Animal {String color;private int age;public boolean ...

最新文章

  1. kettle 表输入 显示重复_表输入插件详解
  2. java中集合的区别_Java中的集合与集合之间的区别
  3. android定位会出现的问题,Android 定位当前位置可能出现的问题
  4. 关闭json引用的方式
  5. Puppet 之 模板和模块
  6. JAVA_if或者怎么用,Java If语句
  7. jeecg-mybatis-framework 参考学习版本
  8. Springboot 整合jsp案例
  9. 77 ~And, two stars meet again~ RC汉化补丁[BUG修正]
  10. Shell之分支结构和循环结构
  11. android 加载so 与内存的关系,Android动态调试so之dump内存数据
  12. 打砖块游戏代码 c语言,打砖块游戏的源代码(请多指教)
  13. Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
  14. Web前端的优点有哪些?为什么Web前端可以如此火爆?
  15. 反向题在测试问卷信效度_调查问卷的信效度分析
  16. VS2019 +easyx 实现闪烁的星空(夜景)
  17. aix linux ftp服务器,AIX主机FTP到LINUX服务器其中的磕碰记录
  18. [Hadoop培训笔记]05-HDFS详细分析(二)
  19. 网页服务器怎么做链接,如何做网页超级链接
  20. python发送qq邮件_python基于SMTP发送邮件(qq邮箱)

热门文章

  1. Android 问题:Installation failed due to: ‘Invalid File:
  2. GIC/ITS代码分析(0)GIC/ITS框架介绍
  3. 微软:12代酷睿处理器,须升级win11才能发挥出最大的性能
  4. GDUT_排位赛题解报告_第3场_B.Loan Repayment
  5. 南开大学2019年高等代数考研试题讲解
  6. 【服务器数据恢复】存储raid5磁盘阵列数据恢复案例
  7. java 半小时_java获取当前时间加半小时之后的时间
  8. 论文笔记-对话系统综述
  9. 伍伦贡大学计算机科学与技术好吗,伍伦贡大学怎么样?伍伦贡大学值得申请吗?...
  10. ZCANPRO 周立功CAN通道配置方法