,同時通過凱西塞拉利昂的書要我碰到這個代碼片段跌跌撞撞:散列函數和密鑰
m.put("k1", new Dog("aiko")); // add some key/value pairs
m.put("k2", Pets.DOG);
m.put(Pets.CAT, "CAT key");
Dog d1 = new Dog("clover");
m.put(d1, "Dog key");
m.put(new Cat(), "Cat key");
地圖是用來儲存東西在鍵和值格式。當我們輸入「k1」或新的Cat()作爲關鍵字時,有人會告訴我實際存儲在密鑰中的內容嗎?是否存儲對這些對象的引用或散列碼的值?我完全同意這一點。請指教。
如果您能指引我閱讀更多的閱讀材料,我們將不勝感激。
這顯然是錯誤的。平等僅限於等同。 hashCode用於減少潛在的相等候選數。兩個相等的對象必須具有相同的hashCode。 – 2012-04-17 15:46:49
這是正確的,但你的回答說equals首先被調用,然後如果equals返回true,則使用hashCode。這完全不正確。閱讀我的答案,瞭解它是如何工作的。 – 2012-04-17 18:08:58
那麼,是不是它先hashCode()然後equals()?糾正我,如果我錯了。非常感謝您更新我的知識。 – TechSpellBound 2012-04-17 18:26:18