在自定義的一個資料類中 重寫equals和HashCode以防止重複輸入相同資料
public class Department {
String depCode;
public int hashCode()
{
// System.out.println("————————執行了Department.hashCode()——————");
return 7*depCode.hashCode();
}
//一個判斷對象是否相等的equals
public boolean equals(Object Department)
{
// System.out.println("----------執行了Department.equals()--------");
// 一個快速測試,看看對象是相同的
if (this==Department) return true;
// 如果顯示的參數是空的時候 則必須傳回錯誤
if(Department==null) return false;
// 如果類型不比對 則不可能相等 getclass 将傳回對象所屬的類
if(getClass()!=Department.getClass())
return false;
// 現在我們知道Department 是一個非空的部門了
Department other =(Department)Department;
//測試是否有相同的值的字段
return depCode.equals(other.depCode);
//&& depName.equals(other.depName);
}
}
然後在另一個類中向Department中put資料的時候 會自動調用HashCode 如果HashCode為true ,則調用equals繼續判斷是否有相同的,若equals也為true 則說明put的資料相同 則不加入。