欢迎访问宙启技术站
智能推送

Java中的equals()函数含义及用法

发布时间:2023-06-16 03:44:08

Java中的equals()函数是一个用来比较两个对象是否相同的方法,其用法可以分为以下几个方面。

1.对象类型的比较

在Java中,通过使用equals()方法,可以判断两个对象是否是同一类型的对象,如果是,就返回true,否则返回false。比如说,对于以下代码:

String str = "hello";

Integer num = 10;

Boolean bool = true;

 

System.out.println(str.equals("hello")); // true

System.out.println(num.equals(10)); // true

System.out.println(bool.equals(false)); // false

上面的代码中分别使用equals()方法来判断字符串、整数和布尔值是否相等,其中只有最后一句返回了false,说明布尔值与false不相等。

2.对象内容的比较

除了比较对象类型外,equals()方法还可以用来判断两个对象之间的内容是否相同。在大多数情况下,这种情况下会通过重写equals()方法来实现。比如说,对于以下代码:

public class Student {

    private String name;

    private int age;

 

    public Student(String name, int age) {

        this.name = name;

        this.age = age;

    }

 

    public String getName() {

        return name;

    }

 

    public int getAge() {

        return age;

    }

 

    @Override

    public boolean equals(Object obj) {

        if(obj instanceof Student) {

            Student s = (Student)obj;

            return this.name.equals(s.getName()) && this.age == s.getAge();

        }

        return false;

    }

}

 

Student s1 = new Student("小明", 20);

Student s2 = new Student("小明", 20);

Student s3 = new Student("小明", 18);

 

System.out.println(s1.equals(s2)); // true

System.out.println(s1.equals(s3)); // false

上面的代码中,定义了一个Student类,该类包含了姓名和年龄两个属性,并且重写了equals()方法,来实现判断两个Student对象之间的内容是否相同。在上面的代码中,s1和s2对象之间的内容相同,所以equals()方法返回了true,而s1和s3对象之间的内容则不同,返回了false。

3.字符串的比较

在Java中,可以使用equals()方法来比较两个字符串是否相等。与其他类型不同的是,字符串是引用类型,但是在Java中比较字符串需要使用equals()方法,不能使用“==”运算符。比如说:

String str1 = "hello";

String str2 = "hello";

 

System.out.println(str1.equals(str2)); // true

上面的代码中,str1和str2都是字符串类型,但是它们之间的比较需要使用equals()方法来实现。由于它们之间的内容相同,所以equals()方法返回了true。

总结:

Java中的equals()方法可以用来比较对象类型和对象内容,对于不同的类型需要使用不同的比较方式。需要注意的是,当比较字符串类型时,不能使用“==”运算符,而是需要使用equals()方法。另外,在比较对象内容时,需要重写equals()方法来实现对象之间的比较。