2 回答

TA貢獻1858條經驗 獲得超8個贊
您可以使用Reflection來檢查地圖的實際分配大?。ㄍ按笮。?。
HashMap<String, Integer> m = new HashMap<>();
m.put("Abhi", 101);
m.put("John", 102);
System.out.println(m.size()); // This will print 2
Field tableField = HashMap.class.getDeclaredField("table");
tableField.setAccessible(true);
Object[] table = (Object[]) tableField.get(m);
System.out.println(table.length); // This will print 16

TA貢獻1843條經驗 獲得超7個贊
Hash Map 的實際大小是多少
我假設你問的是容量。容量是保存 s 的桶的數組的長度HashMap
。初始容量默認為 16。
該capacity
方法不公開,但您可以根據當前size
、初始容量和負載系數計算當前容量。
如果使用默認值(例如,HashMap
使用無參數構造函數創建時),初始容量為 16,默認負載因子為 0.75。這意味著一旦大小達到 16 * 0.75 == 12,容量將翻倍至 32。一旦大小達到 32 * 0.75 == 24,容量將翻倍至 64。
如果您將不同的初始容量和/或負載因子傳遞給構造函數,則計算將受到相應影響。
添加回答
舉報