其中擴容時取的參考只是新增Map m的size大小。若存在 m.size < table.length * 2^n < m.size + table.length,則在後面循環put的代碼中存在再次擴容的可能性。
舉例說明 當前table.length 爲64,map.size() = 47 < 64*0.75,被添加的Map m.size()=93, loadFactor爲默認值0.75。
targetCapacity = 125,table.length擴容後爲128。
若後續新增不存在重複值,則最後的size爲47+93 = 140 > 128*0.75,因此在循環put期間進行過第二次擴容。
若是本人理解有誤,請幫忙指出,謝謝!