我正在尋找哈希和更具體的哈希映射。我不明白hashCode()方法,並真的希望有人爲我清除它。我有一個小測試的緣故,寫這樣的代碼:HashMap的方法hashCode和它的效果
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(4,4);
map.put(5,4);
System.out.println(map.hashCode());
的位置輸出爲1。然而,當我改變一點點像這樣:
map.put(2,5);
map.put(7,4);
輸出爲10。
這是如何計算的,或者我應該如何知道,而不運行它將打印出來的內容?
在此先感謝!
你爲什麼喜歡在HashMap中的散列碼?你想使用地圖本身作爲另一張地圖的關鍵(這可能是一個壞主意)? – assylias
它僅用於學習目的:) – user3161041
查看HashMap如何調用其項目的哈希碼方法將它們放在正確的存儲桶中可能會更有趣。如果你關注我,HashMap的哈希碼本質上是其項目的哈希碼的組合,但不是哈希映射本身的哈希策略的一部分。 – assylias