Equals 方法
(重定向自Equals 方法 - Java)
跳到导航
跳到搜索
在 String 比较中使用 equals 方法,可以比较两个 String 的值是否相等,而这个方法是 String 重写的(ArrayList 等也进行了重写)。 而在 Object 中使用原生的方法,比较的只是两个对象是否相等,所以创建两个空的 Object,比较结果是不相等的。
而类似的情况是,== 可用于比较基本类型相等。而对于非基本类型,== 比较的是地址。
下面是一个自定义类的例子,展示两个对象内容相同但 equals 返回 false 的情况:
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } // use the default equals of Object } public class test_equals { public static void main(String[] args) { System.out.println("==== Person compare:"); Person p1 = new Person("Adam", 20); Person p2 = new Person("Adam", 20); System.out.println(p1); System.out.println(p2); System.out.println(p1.equals(p2)); // false } }
在自定义类中通常需要重写 equals 方法。