Java中的equals()
方法是一個用于比較對象相等性的方法。它是Object
類的方法,因此在所有的Java對象中都可以使用。該方法有兩個不同的作用:
第一,equals()
可以用來比較兩個對象是否相等。Java中的相等性比較有兩種方式,一種是基于引用的,另一種是基于值的。基于引用的相等性比較是通過比較對象在內存中的地址來判斷的。而基于值的相等性比較則是通過比較對象的屬性是否一致來判斷兩個對象是否相等。在Java中,如果沒有顯式地覆蓋equals()
方法,那么默認使用基于引用的相等性比較。
第二,equals()
方法可以用來比較兩個字符串是否相等。Java中的字符串是一種特殊類型的對象,因此也可以使用equals()
方法進行比較。在字符串中,相等性比較是基于值的,因此equals()
方法會比較兩個字符串的內容是否一致。
public class Example {
private int id;
private String name;
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Example)) {
return false;
}
Example other = (Example) obj;
return id == other.id && Objects.equals(name, other.name);
}
}
在上面的代碼中,我們覆蓋了equals()
方法并實現了基于值的相等性比較。我們先判斷兩個對象的引用是否相同,如果是的話直接返回true
。接著判斷傳入的對象是否是Example
類的實例,如果不是的話返回false
。最后,我們比較兩個對象的所有屬性是否一致,如果一致返回true
,否則返回false
。