在Java编程中,equals() 方法是用于判断两个对象是否“相等”的重要工具。默认情况下,Object 类的 equals() 方法比较的是两个引用是否指向内存中的同一个对象。然而,在实际开发中,我们经常需要根据对象的内容来判断它们是否相等,这就需要我们重载 equals() 方法。
为什么要重载 equals() 方法?

当我们创建自定义类时,默认的 equals() 方法通常不能满足业务需求。例如,假设我们有一个 Person 类,其中包含 name 和 age 属性。如果我们要判断两个 Person 对象是否代表同一个人,我们需要基于 name 和 age 来进行比较,而不是它们的引用地址。
如何正确地重载 equals() 方法?
重载 equals() 方法时,有几个关键点需要注意以确保方法的正确性和一致性:
参数类型:必须接受一个
Object类型的参数。自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,x.equals(y) 返回 true 当且仅当 y.equals(x) 也返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true 并且 y.equals(z) 返回 true,那么 x.equals(z) 也应该返回 true。
一致性:多次调用 x.equals(y) 在没有修改 x 和 y 的信息的情况下始终返回相同的结果。
非空性:任何非空对象 x,x.equals(null) 应该返回 false。
此外,每当重载 equals() 方法时,也需要重载 hashCode() 方法,以确保符合哈希表(如 HashMap 或 HashSet)的工作原理。





















