天天看點

java equals方法重寫_Java重寫equals方法

為什麼equals() 方法需要重寫?

判斷連個對象在邏輯上是否相等,如果根據類成員變量來判斷兩個的實力是否相等,而繼承Object中的 equals 方法隻能判斷兩個引用變量是否是同一個對象。這樣我們往往需要重寫 equals()方法

我們向一個沒有重複對象的集合中添加元素時,集合中存放的往往是對象,我們呢需要先判斷集合中是否存在

怎樣重寫equals()方法?

重寫equals方法的要求:

1、自反性:對于任何非空引用x,x.equals(x)應該傳回true。

2、對稱性:對于任何引用x和y,如果x.equals(y)傳回true,那麼y.equals(x)也應該傳回true。

3、傳遞性:對于任何引用x、y和z,如果x.equals(y)傳回true,y.equals(z)傳回true,那麼x.equals(z)也應該傳回true。

4、一緻性:如果x和y引用的對象沒有發生變化,那麼反複調用x.equals(y)應該傳回同樣的結果。

5、非空性:對于任意非空引用x,x.equals(null)應該傳回false。

list檢查是否含有元素時時通過調用對象的 equals 方法來判斷的,也就是說 contains(p2)傳遞