共計(jì) 842 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 Java 中,可以使用 equals() 方法來(lái)判斷兩個(gè)對(duì)象的值是否相等。equals()方法是在 Object 類中定義的,所有的 Java 類都繼承自 Object 類,因此所有的 Java 對(duì)象都可以使用 equals() 方法。
默認(rèn)情況下,equals()方法會(huì)比較兩個(gè)對(duì)象的引用是否相等,即判斷兩個(gè)對(duì)象是否指向同一個(gè)內(nèi)存地址。如果想要比較對(duì)象的實(shí)際值,需要在自定義類中重寫(xiě) equals() 方法。
重寫(xiě) equals() 方法時(shí),應(yīng)該比較對(duì)象的屬性值是否相等。例如,對(duì)于一個(gè)名為 Person 的類,可以重寫(xiě) equals() 方法如下:
public class Person {
private String name;
private int age;
// 構(gòu)造方法、getter 和 setter 方法等省略
@Override
public boolean equals(Object obj) {if (this == obj) { // 判斷是否是同一個(gè)對(duì)象的引用
return true;
}
if (obj == null || getClass() != obj.getClass()) { // 判斷是否為 null 或者類型不同
return false;
}
Person otherPerson = (Person) obj; // 將 obj 強(qiáng)制轉(zhuǎn)換為 Person 類型
// 比較每個(gè)屬性值是否相等
return age == otherPerson.age && Objects.equals(name, otherPerson.name);
}
}
在上述代碼中,equals()方法首先判斷兩個(gè)對(duì)象的引用是否相等,如果相等,則直接返回 true。然后判斷另一個(gè)對(duì)象是否為null 或者類型不同,如果是,則返回 false。最后,將另一個(gè)對(duì)象強(qiáng)制轉(zhuǎn)換為Person 類型,并比較每個(gè)屬性的值是否相等,如果全部相等,則返回 true,否則返回false。
使用 equals() 方法進(jìn)行對(duì)象值的比較時(shí),通常還會(huì)使用 hashCode() 方法一起使用,以確保對(duì)象在放入哈希表等數(shù)據(jù)結(jié)構(gòu)時(shí)的正確性。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!