equals方法和 的區別 用例項簡單說明

2022-07-01 08:22:33 字數 1611 閱讀 8415

首先我們建立乙個類

public

class

people

public

void

setname(string name)

public

string getaddress()

public

void

setaddress(string address)

public

people()

public

people(string name, string address)

@override

public

string tostring()

}

該類沒有重寫hashcode和equals方法

下面我們進行比較

public

static

void

main(string args)

結果為:

說明如果沒有重寫equals()方法,則equals和==比較的都是位址。每生成乙個物件,虛擬機器都會重新生成乙個位址,因此比較結果都為false

我們加上hashcode和equals方法

public

class

people

public

void

setname(string name)

public

string getaddress()

public

void

setaddress(string address)

public

people()

public

people(string name, string address)

@override

public

string tostring()

@override

public

inthashcode()

@override

public

boolean

equals(object obj)

else

if (!address.equals(other.address))

return

false

;

if (name == null

) else

if (!name.equals(other.name))

return

false

;

return

true

; }

}

再次執行例項,結果為:

說明如果重寫equals()方法,則==比較的是位址,equals比較的是物件中的內容

和 equals 方法的區別

public static void main string args 結果 public static void main string args 結果 結果 結果 是乙個關係運算子,使用與所有內建的資料型別,同樣也適用於所有物件,檢查兩個物件是否相等。1中,a b 返回true。因為a b 都是...

和equals方法的區別

是乙個運算子,可以用於比較基本資料型別和引用資料型別 用於基本資料型別的時候,比較的是值是否相等,而用於引用資料型別的時候,比較的是位址值。實際使用equals 方法時,一般用於比較內容是否相同。因此,需要重寫equals方法。這裡分為系統類和自定義類進行說明 系統類一般都重寫過equals方法,比...

號和equals方法的區別

是乙個比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值 只能比較引用資料型別,所有的物件都會繼承 object 類中的方法,沒有重寫 object 類中的 equals 方法,equals方法和 號比較引用資料型別無區別,重寫後的equ...