GO 中 Map 中最多可以存儲多少個元素?如果我需要經常訪問 Map 中的數據,在長時間運行的程序中繼續向 Map 添加項目并從中檢索是否是個好主意?
2 回答

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
除了 map-length 類型的最大值是int
. 的最大值int
取決于您編譯到的目標架構,可能是1 << 31 - 1 = 2147483647
32 位,也可能是1 << 63 - 1 = 9223372036854775807
64 位。
請注意,作為實現限制,您可能無法準確添加 max-int 元素,但數量級將相同。
由于內置map
類型使用 hashmap 實現,訪問時間復雜度通常為 O(1),因此向映射添加多個元素完全沒問題,您仍然可以非常快速地訪問元素。請注意,然而添加許多元素會導致重新散列和重建內部結構,這將需要一些額外的計算 - 在向地圖添加新鍵時偶爾會發生這種情況。
如果您可以“猜測”或估計地圖的大小,則可以創建具有大容量的地圖以避免重新散列。例如,您可以創建一個包含一百萬個元素的空間的地圖,如下所示:
m := make(map[string]int, 1e6)
- 2 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
0/150
提交
取消