在Java中,equals()
方法用于比較兩個對象是否相等
==
操作符檢查對象引用是否相等。如果兩個引用指向同一個對象,那么它們肯定相等。if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
instanceof
關鍵字來檢查對象是否屬于特定類。如果不是,則返回false。if (!(obj instanceof MyClass)) {
return false;
}
MyClass other = (MyClass) obj;
==
操作符。對于引用類型,可以使用equals()
方法(如果該類已經(jīng)重寫了equals()
方法)或者使用==
操作符(如果該類沒有重寫equals()
方法,例如String、Integer等不可變類)。return this.field1 == other.field1 && this.field2.equals(other.field2);
equals()
方法:@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || !(obj instanceof MyClass)) {
return false;
}
MyClass other = (MyClass) obj;
return this.field1 == other.field1 && this.field2.equals(other.field2);
}
注意:在實現(xiàn)equals()
方法時,還需要重寫hashCode()
方法,以確保滿足equals()
方法相等的兩個對象具有相同的哈希碼。這對于使用哈希表的集合(如HashSet、HashMap等)非常重要。