重寫equals方法

2021-08-21 01:44:24 字數 412 閱讀 4184

object物件中的 public boolean equals(object obj),指示其他某個物件是否與此物件「相等」。這裡的相等指的是比較的兩方指向同乙個物件

對於任何非空引用值 x 和 y,當且僅當 x 和 y 引用同乙個物件(就是同一塊記憶體位址),此方法才返回 true;

但是這一性質並不符合我們生活所需,比如乙個不允許有重複值的物件陣列,我們的規定,儲存的資料相同的物件就屬於重複物件,當我們往陣列內插入物件時,陣列必然要先判斷插入的物件是否存在,如果存在就替換,不存在就插入,但是用equals方法顯然判斷不出,因為new出來的物件的記憶體位址永遠不同,所以陣列中就會出現重複值。這時候顯然就要重寫陣列類的equals方法了,在其中加入我們自己的邏輯。

equals方法的重寫還有很多規定:

重寫equals方法

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

equals方法重寫

來自的文章 一 為什麼equals 方法要重寫?判斷兩個物件在邏輯上是否相等,如根據類的成員變數來判斷兩個類的例項是否相等,而繼承object中的equals方法只能判斷兩個引用變數是否是同乙個物件。這樣我們往往需要重寫equals 方法。我們向乙個沒有重複物件的集合中新增元素時,集合中存放的往往是...

重寫equals方法

對稱性 如果x.equals y 返回是 true 那麼y.equals x 也應該返回是 true 自反性 x.equals x 必須返回是 true 傳遞性 如果x.equalsly 返回是 true 而且y.equals z 返回是 true 那麼z.equals x 也應該返回是 true ...