Java自定義類中重寫equals方法

equals方法的要求:

a.自反性:對于任何非空的x,x.equals(x)都應(yīng)該返回true

b.對稱性:對于任何引用x和y,當(dāng)且僅當(dāng)x.equals(y)返回true時(shí),y.equals(x)也應(yīng)該返回true

c.傳遞性:對于任何引用x,y,z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也應(yīng)該返回true

d.一致性:如果x和y的引用沒有發(fā)生變化,那么反復(fù)調(diào)用x.equals(y)的結(jié)果應(yīng)該相同

e.對于任何非空的引用x,x.equals(null)應(yīng)該返回false

publicclassA{publicbooleanequals(Object otherObject){//測試兩個(gè)對象是否是同一個(gè)對象,是的話返回trueif(this==otherObject)returntrue;//測試檢測的對象是否為空,是就返回falseif(otherObject==null)returnfalse;//測試兩個(gè)對象所屬的類是否相同,否則返回falseif(getClass()!=otherObject.getClass())returnfalse;//對otherObject進(jìn)行類型轉(zhuǎn)換以便和類A的對象進(jìn)行比較A other=(A)otherObject;//對于值可能為null的屬性,檢測時(shí)應(yīng)使用Object的equals方法,不為null的可以直接使用==檢測returnObject.equals(類A對象的屬性A,other的屬性A)&&類A對象的屬性B==other的屬性B……;? }? ? }

在子類定義equals方法時(shí)使用super.equals方法進(jìn)行重載復(fù)寫。

一般來說,重寫了equals方法就同時(shí)也要重寫hashCode方法

重寫hashCode方法的原因

publicinthashCode(){//其中Double根據(jù)需要換成所需類型,第一個(gè)乘數(shù)因子為素?cái)?shù)(也叫質(zhì)數(shù))return7*Object.hashCode(有可能為null的屬性A)+11*newDouble(不為null的屬性B).hashcode()+? ? ? ? ……}

或者有更簡單的方法

publicinthashCode(){returnObject.hashCode(屬性A,屬性B,屬性C,……);}

That's all.

需要學(xué)習(xí)資料和路線可以加Java高級(jí)交流群: ( 725633148 ) 每晚8點(diǎn)高清在線直播與你分享java企業(yè)當(dāng)下招聘人才需求,怎么學(xué)Java,和學(xué)習(xí)什么內(nèi)容,相信你了解之后對你今后學(xué)習(xí)Java會(huì)有非常大的幫助。

?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • equals方法的要求:a.自反性:對于任何非空的x,x.equals(x)都應(yīng)該返回trueb.對稱性:對于任何...
    這是朕的江山閱讀 6,415評(píng)論 4 18
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,753評(píng)論 18 399
  • 朋友拉我去南京見Scalers,沒有一點(diǎn)點(diǎn)防備我就答應(yīng)了,雖然我們身處廣州,雖然事實(shí)上我才關(guān)注他公眾號(hào)也就一個(gè)多月...
    我是豌豆姑娘閱讀 792評(píng)論 0 6
  • 今年又看了次笑傲,越發(fā)覺得大師兄對小師妹一片深情,他真的能愛任盈盈嗎?“作者自欺,而讀者信矣?!眴??令狐沖身上有了...
    摶九閱讀 547評(píng)論 0 0
  • 每個(gè)品牌都會(huì)有自己經(jīng)典的地方,某種意義上來說,是這些經(jīng)典造就了品牌,讓其屹立不倒。是這些獨(dú)特而又辨識(shí)度高的設(shè)計(jì),讓...
    中古寶貝閱讀 827評(píng)論 0 0

友情鏈接更多精彩內(nèi)容