equals 和hashCode 使用總結

2021-09-10 21:39:25 字數 1229 閱讀 8699

equals()

package cn.galc.test;

public class testequals }

//沒有重寫equals

class cat

}

//先判斷比較物件是否為null—>判斷比較物件是否為要比較類的例項—–>比較倆個成員變數是否完全相等。

public class testequals

}//重寫equals

class cat

/*** 這裡是重寫相等從object類繼承下來的equals()方法,改變這個方法預設的實現,

* 通過我們自己定義的實現來判斷決定兩個物件在邏輯上是否相等。

* 這裡我們定義如果兩隻貓的color,weight,height都相同,

* 那麼我們就認為這兩隻貓在邏輯上是一模一樣的,即這兩隻貓是「相等」的。

*/public boolean equals(object obj)

else}}

return false;

}}

hashcode

blic class conflicthashcodetest2

/*** @desc person類。

*/private static class person

public string tostring()

/**

* @desc重寫hashcode

*/

@override

public int hashcode()

/**

* @desc 覆蓋equals方法

*/

@override

public boolean equals(object obj)

//如果是同乙個物件返回true,反之返回false

if(this == obj)

//判斷是否型別相同

if(this.getclass() != obj.getclass())

person person = (person)obj;

return name.equals(person.name) && age==person.age; } }

}

posted @ 2019-02-13 14:50

編輯收藏

equals和hashcode的重寫

下面給出例項 package xuming class student public student string name,int age,int classnum 重寫equals方法 public boolean equals object o 測試引用o是都為null if o null 測...

equals 和hashCode 的區別

equals 反映的是或變數具體的值,即兩個物件包含的值 可能是物件的引用,也可能是值型別的值 hashcode 計算出物件例項的雜湊碼 根據記憶體位址返回的int型的數值 並返回雜湊碼,又稱為雜湊函式。根據object的hashcode都是唯一的 當然,當物件重寫了hashcode 方法時,結果就...

hashCode 和equals 的區別

hashcode 和equals 都是object類中的方法 hashcode equals 不重寫時 返回的是物件的位址值 用來比較兩個物件的位址值是否相等 重寫後返回的是根據物件的成員變數,計算出的乙個整數 比較的是兩個物件的成員資訊是否相同 兩個物件通過equals 比較是相等的,那hashc...