如果重寫equals方法,就必須要遵循以下規則

2021-09-28 15:48:26 字數 386 閱讀 7160

如果重寫equals方法,就必須要遵循以下規則:

自反性。對於任何非null的引用值x,x.equals(x)應返回true。

對稱性。對於任何非null的引用值x與y,當且僅當:y.equals(x)返回true時,x.equals(y)才返回true。

傳遞性。對於任何非null的引用值x、y與z,如果y.equals(x)返回true,y.equals(z)返回true,那麼x.equals(z)也應返回true。

一致性。對於任何非null的引用值x與y,假設物件上equals比較中的資訊沒有被修改,則多次呼叫x.equals(y)始終返回true或者始終返回false。

對於任何非空引用值x,x.equal(null)應返回false。

重寫equals時還必須重寫hashCode方法

1.public boolean equals object obj 和 hashcode 方法是object物件中的方法 2.equals 與 hashcode間的關係是這樣的 a.如果兩個物件相同 即用equals比較返回true,那麼它們的 hashcode 值一定要相同 b.如果兩個物件的 ...

為什麼重寫equals必須重寫hashCode呢

在理解這個問題時,我認為最先理解的應該是為什麼會重寫equals呢?理解清楚這個的前提下才有必要去理解為什麼需要去重寫hashcode!為什麼需要重寫equals方法呢?我認為是為了適應業務場景的需求而需要對類的equals方法進行重寫,最經典的重寫equals方法的例子莫過於string類了,在o...

重寫equals方法

對於重寫equals方法有以下例子 object類中的常用方法。object類是所有類的根類,定義了所有物件都具備的功能。api 應用程式介面 文件 class person extends object 判斷是否是同齡人。這個方法也是在比較兩個person物件是否相等。注意 person類中是否有...