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...