0
我有一個問題,如果我們需要傳遞自定義對象作爲一個鍵,我們只需要重寫equals和hashcode方法,甚至該類應該是不可變的?hashmap的密鑰應該是不可變的嗎?
因爲字符串是不可變的,所以我們更喜歡它作爲hashmap的關鍵,所以用這個邏輯我提出了這個問題?
我有一個問題,如果我們需要傳遞自定義對象作爲一個鍵,我們只需要重寫equals和hashcode方法,甚至該類應該是不可變的?hashmap的密鑰應該是不可變的嗎?
因爲字符串是不可變的,所以我們更喜歡它作爲hashmap的關鍵,所以用這個邏輯我提出了這個問題?
這取決於你的散列函數。
所有正在哈希的數據應該是是不可變的。否則,當你改變其中一個字段時,你將失去對你的值的訪問,直到你傳遞另一個哈希值相同的對象。使用任何其他關鍵對象再次找到您的價值的可能性非常低。
謝謝@ Aaron3468 –
這會更好 –
謝謝! @MauricePerry –