首頁 > Java > java教程 > ArrayList 的 `contains()` 方法如何評估物件相等性?

ArrayList 的 `contains()` 方法如何評估物件相等性?

Patricia Arquette
發布: 2024-12-14 00:33:10
原創
170 人瀏覽過

How Does ArrayList's `contains()` Method Evaluate Object Equality?

ArrayList 在 contains() 方法中對物件的求值

ArrayList 是 Java 中高度利用的資料結構。它的關鍵方法之一 contains() 提供了在清單中搜尋物件的能力。一個常見的問題是關於此方法如何確定兩個物件是否相等。

equals() 方法的作用

ArrayList 合併了 List 接口,該接口定義了包含() 方法。根據 List 介面規範, contains() 方法呼叫 equals() 方法來比較物件是否相等。

預設equals() 行為

預設情況下, equals() 方法比較物件的參考相等性,這表示僅當物件引用相同物件實例時才被視為相等。此行為不適合大多數自訂類,其中相等性應基於物件的屬性。

重寫自訂類別的 equals()

實作語義相等您的自訂類,您需要重寫 equals() 方法。在您的範例中,您提供了 equals() 的實現,該實現根據 Thing 類別的 value 屬性進行比較。

範例評估

使用您提供的實作equals(),讓我們評估contains() 方法:

ArrayList<Thing> basket = new ArrayList<>();
Thing thing = new Thing(100);
basket.add(thing);
Thing another = new Thing(100);
basket.contains(another); // true
登入後複製

contains() 方法傳回true,因為重寫的equals() 方法比較thing 和another 的值屬性並確定它們相等。

因此,為了使 contains() 方法能夠根據對象的屬性正確識別對象,必須重寫equals() 方法並提供有意義的比較實作。

以上是ArrayList 的 `contains()` 方法如何評估物件相等性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板