最近,我參加了一次採訪,面試官問了我這個問題。在hashmap中可以重複散列多少次
一次HashMap中可能會發生多少次重新哈希?兩次?或N次? [當每次添加(閾值+1)元素時]
我知道當地圖滿了時,它很可能是我們做錯了什麼。
我承認我無法給出滿意的答案。任何人都可以告訴我回答這些問題的方法。或者,面試官在一個令人信服的答案中尋找什麼?
下面是我在提出這個問題之前提到的一些SO問題。
https://stackoverflow.com/a/28811708 「當映射中的元素數量達到閾值時,完成哈希映射的重新哈希」哈希映射的負載因子爲0.75,默認初始容量值爲16.一旦元素數達到或穿過地圖發生的12個元素容量重構。
當在散列映射條目的數量超過了負載因數和電流容量的乘積,哈希映射重新散列(內部數據結構被重建),從而使哈希映射具有大約桶數的兩倍。 當您將所有內容重新組合並移動到新的位置(存儲桶等)時,舊的元素也會再次重新存儲並根據其新的哈希碼存儲在新存儲區中。分配用於存儲元素的舊空間是垃圾收集。
https://stackoverflow.com/a/27384645/5086633
ok ... if(oldCapacity == MAXIMUM_CAPACITY){threshold} = Integer.MAX_VALUE; return; } – yeppe
確切的數字可能會稍微少一點,有很多地方要檢查*最小*表格大小和增長時應用的確切規則。但是這個答案給出了一個很好的估計,它應該足以回答面試問題。 – Durandal