用自定義類作為key,必須重寫equals()和hashcode()方法。
自定義類中的equals() 和 hashcode()都繼承自object類。
object類的hashcode()方法返回這個物件儲存的記憶體位址的編號。
而equals()比較的是記憶體位址是否相等。
以下是沒有重寫equals()和hashcode()方法;
自定義 phonenumber類
package comjk;
public class phonenumber
public void setprefix(int prefix)
public int getphonenumber()
public void setphonenumber(int phonenumber) }
main 方法
public static void main(string args)
輸出結果
111222
null
在phonenumber 類中
重寫equals()和hashcode()方法;
@override
public boolean equals(object o)
if(!(o instanceof phonenumber))
phonenumber pn = (phonenumber)o;
return pn.prefix == prefix && pn.phonenumber == phonenumber;
}@override
public int hashcode()
輸出結果
111222
222
Java簡單實現自定義HashMap
陣列的特點是 定址容易,插入和刪除困難 而鍊錶的特點是 定址困難,插入和刪除容易。要綜合兩者的特性,就有了雜湊表。雜湊表有多種不同的實現方法,最經典的一種方法 拉鍊法。雜湊表可以理解為鍊錶的陣列。主幹為陣列,陣列的每乙個成員是鍊錶。該資料結構所容納的所有元素均包含乙個指標,用於元素間的鏈結。我們根據...
HashMap儲存自定義型別鍵值
練習 每位學生 姓名,年齡 都有自己的家庭住址。那麼,既然有對應關係,則將學生物件和家庭住址儲存到map集合中。學生作為鍵,家庭住址作為值。注意,學生姓名相同並且年齡相同視為同一名學生。1 學生類 publicclassstudent 2 測試類 publicclasshashmaptest 取出元...
HashMap儲存自定義型別資料
hashmap儲存自定義型別鍵值 map集合保證key是唯一的 作為key的元素,必須重寫hashcode方法和equals方法,以保證key唯一 hashmap儲存自定義型別鍵值 key person型別,person類必須重寫hashcode方法和equals方法,以保證key唯一 value ...