Java中的equals()函数含义及用法
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()方法来实现对象之间的比较。
