2016-12-23 64 views
0

我有一個問題,如果我們需要傳遞自定義對象作爲一個鍵,我們只需要重寫equals和hashcode方法,甚至該類應該是不可變的?hashmap的密鑰應該是不可變的嗎?

因爲字符串是不可變的,所以我們更喜歡它作爲hashmap的關鍵,所以用這個邏輯我提出了這個問題?

+0

這會更好 –

+0

謝謝! @MauricePerry –

回答

1

這取決於你的散列函數。

所有正在哈希的數據應該是是不可變的。否則,當你改變其中一個字段時,你將失去對你的值的訪問,直到你傳遞另一個哈希值相同的對象。使用任何其他關鍵對象再次找到您的價值的可能性非常低。

+0

謝謝@ Aaron3468 –

相關問題