在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。