equals方法

CodeCosmicRover
• 阅读 140

equals方法的作用:
      Object类中的一个方法,用与比较对象地址值,返回true或flase
重写equals方法:      当不想比较对象的地址值而想要比较对象的属性内容时,需要通过重写equals方法来实现
重写equals方法的方式:
       alt + insert  选择equals() and hashCode(),IntelliJ Default,一路next,finish即可
示例代码:

[Java] 纯文本查看 复制代码
?
class Student {
    private String name;
    private int age;
 
    public Student() {
    }
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public boolean equals(Object o) {
        //this -- s1
        //o -- s2
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
 
        Student student = (Student) o; //student -- s2
 
        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("潘长江");
        s1.setAge(60);
        Student s2 = new Student();
        s2.setName("潘长江");
        s2.setAge(60);
 
        //比较两个对象的内容是否相同
        System.out.println(s1.equals(s2));
    }
}

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java中字符串相等判断
字符串的判断有2种:        1、判断地址是否相等 用:        2、判断值是否相等 用:equals方法Object类作为所有类的超类,而Object类的equals方法是直接比较地址的,源码如下:publicbooleanequals(Objectobj){
红烧土豆泥 红烧土豆泥
4年前
补充关于equals的比较方式
补充(equals比较)java.lang.String类中的方法equals判断相等依据策略:如果与目标相等返回0,小于目标返回值小于0,大于目标返回值大于0language@NativestaticfinalbyteLATIN10;@NativestaticfinalbyteUTF161;language/Compa
红烧土豆泥 红烧土豆泥
4年前
补充关于equals的比较方式
补充(equals比较)Object中的equals比较的是地址languagepublicbooleanequals(Objectobj)return(thisobj);java.lang.String类中equals的方法equals判断相等依据策略:如果与目标相等返回0,小于目标返回值小于0,大于目标返回值大于0lan
Wesley13 Wesley13
3年前
Java中==和equals的区别
""可以比较基本数据类型,也可以比较引用数据类型。如果比较基本数据类型比较的是变量中存储的值;如果比较引用类型比较的是变量中存储的地址引用。equals()是Object类中继承过来的方法,每个引用类型都可以调用,默认继承的equals()方法的比较与""一致。如下代码所示: publicbooleanequals(Objectobj)
Stella981 Stella981
3年前
Sonar 规则
bug类型:1、".equals()"shouldnotbeusedtotestthevaluesof"Atomic"classes.bug主要不要使用equals方法对AtomicXXX进行是否相等的判断Atomic变量永远只会和自身相等,Atomic变量没有覆写equals()方法.2、""
Wesley13 Wesley13
3年前
Java 覆盖equals和hashCode方法
前言覆盖equals方法看起来似乎很简单,但是有许多覆盖方式会导致错误,并且后果非常严重,最容易避免这类问题的办法就是不覆盖equals方法。什么时候需要覆盖equals方法?如果类具有自己特有的“逻辑相等”概念(不同于对象等同),而且超类还没有覆盖equals方法以实现期望的行为,这时需要覆盖equals方法。覆盖equals
Wesley13 Wesley13
3年前
Java提高篇——equals()与hashCode()方法详解
阅读目录equals()方法详解hashcode()方法详解Hashset、Hashmap、Hashtable与hashcode()和Equals()的密切关系java.lang.Object类中有两个非常重要的方法:publicbooleanequals(Objectobj)pub
Easter79 Easter79
3年前
String字符串相等判断
\:比较的是内存地址值equals:比较的是值,对象的equals()可以被重写java中字符串的比较:Stringa"abc";Stringb"abc"那么ab将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和
Wesley13 Wesley13
3年前
JAVA hashCode和equals方法详解
hashCode和equals方法都是Object基类的方法先看一个例子publicclassStudeng{privateIntegersid;privateStringname;publicIntegerge
Wesley13 Wesley13
3年前
Java连接excel实现:通过姓名查找id和通过id查找姓名
注意每个方法结束都要关闭workbook;还有getIdbyname()方法中字符串flag与name的比较,一定要用equals()方法!!!;剩下的不多解释,注释都在代码中:importjava.io.FileInputStream;importjava.io.IOException;importjava.i
Wesley13 Wesley13
3年前
Java方面技术点小整理
Java中的集合吗?java中的集合分为value、keyvalueg两种存储值有分为list和setList有序的,可以重复Set是序的,不可以重复的根据equals和hashCode判断如果一个对象要存储在set中,必须重写equals和hashCode的方法;存储keyvalue的为map
CodeCosmicRover
CodeCosmicRover
Lv1
碛里征人三十万,一时回向月明看。
文章
4
粉丝
0
获赞
0