Java equals 方法重寫

2021-09-24 15:54:19 字數 719 閱讀 9280

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。

下面看乙個例子:

public class anexampleclass 

if (object == null)

if (!(object instanceof anexampleclass))

anexampleclass other = (anexampleclass) object;

return other.age == age && other.name.equals(name);

}}

記住,如果你重寫了equals()方法,那麼一定要重寫hashcode()方法!hashcode()有一種簡單的寫法如下:

@override

public int hashcode()

java equals方法的覆蓋

public boolean equals object obj object中的這個方法比較的是位址,因此我們應當在自己的類中按自己的要求覆蓋這個方法 步驟 測試形參是否為null 測試型別是否匹配 將obj強轉為自己的類所屬的型別。最後,比較所有字段。使用 比較基本資料型別,使用equals方法...

Java equals和hashCode的理解

我們一般使用equals都是為了比較物件的內容,而object裡面的equals方法卻是比較物件的引用,如下 public boolean equals object obj 所以當我們想要比較的是物件的內容時,需要重寫equals方法,假設user類中有string name int age 兩個...

Java equals和 的區別

好多人搞不清equals和 的區別,今天我來 一下,如有誤請批評指正。我們常常簡單理解為 運算子用來比較兩個基本資料型別的數值是否相同,而equals 方法用來比較兩個物件是否相同。這樣的理解也可以,但我們還是要看看更深層次的含義,那樣會更加清晰 1,對於基本資料型別,byte,short,char...