首頁 >Java >java教程 >equal在java的意思

equal在java的意思

下次还敢
下次还敢原創
2024-05-09 06:21:18973瀏覽

equal() 方法在 Java 中用來比較兩個物件的相等性,它會傳回布林值表示是否相等。 equal() 方法透過檢查物件參考、類型和委託給子類別來進行比較。對於自訂類,可以透過重寫 equal() 方法來自訂比較規則,遵循自反性、對稱性、傳遞性和一致性原則。

equal在java的意思

equal() 方法在Java 中的作用

在Java 中,equal() 方法是Object 類的核心方法,它用於比較兩個物件的相等性。此方法傳回布林值,表示兩個物件是否相等。

具體實作

equal() 方法透過下列步驟來比較兩個物件:

  1. 檢查物件參考:如果兩個物件引用指向同一個對象,則它們相等。
  2. 檢查物件的類型:如果兩個物件不是相同類型的,則它們不相等。
  3. 委託給子類別:如果兩個物件是同類型的,則該方法將委託給子類別來進行進一步比較。

重寫 equal() 方法

對於自訂類,可以透過重寫 equal() 方法來自訂比較規則。重寫的 equal() 方法應遵循以下原則:

  • 自反性:對於任何非空參照值 x,x.equals(x) 應傳回 true。
  • 對稱性:對於任何非空參考值 x 和 y,如果 x.equals(y),那麼 y.equals(x) 也應傳回 true。
  • 傳遞性:對於任何非空引用值x、y 和z,如果x.equals(y) 為true,並且y.equals(z) 為true,那麼x. equals(z) 也應傳回true。
  • 一致性:對於任何非空參考值 x 和 y,如果 hashCode() 方法多次調用,則 x.equals(y) 的結果應保持一致。

範例

以下是重寫equal() 方法的自訂類別範例:

<code class="java">class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {
            Person other = (Person) obj;
            return this.name.equals(other.name) && this.age == other.age;
        }
        return false;
    }
}</code>

在該範例中,equal () 方法比較了兩個Person 物件的name 和age 欄位來決定相等性。

以上是equal在java的意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn