在Java中,equals()方法主要用于比较两个对象是否相等。它是Object类的方法,因此在所有的Java类中都可以使用。
equals()方法有以下作用:
比较两个对象是否相等:equals()方法会比较两个对象的内容是否相同,如果相同则返回true,否则返回false。
判断两个对象是否指向同一个内存地址:如果两个对象指向同一片内存地址,则它们一定相等。equals()方法会先判断两个对象是否引用同一片内存地址,如果是则直接返回true,否则再进行内容比较。
重写equals()方法:在自定义类中,如果希望比较两个对象的内容是否相等,就需要重写equals()方法。默认情况下,equals()方法会调用Object类的equals()方法,该方法只比较两个对象的内存地址。
需要注意的是,equals()方法需要满足以下几个条件:
自反性:对于任何非空引用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和y,如果两个对象的内容没有发生改变,多次调用x.equals(y)应该返回相同的结果。
对于任何非空引用x,x.equals(null)应该返回false。