Sun*_*nil 1 dictionary hashmap go
GO中的Map中可以存储的最大元素数是多少?如果我需要经常访问Map中的数据,在长时间运行的程序中继续向Map添加项目并从中检索是否是一个好主意?
icz*_*cza 13
除了地图长度类型的最大值之外,地图中的元素数量没有理论限制int.最大值int取决于您编译的目标体系结构,可能1 << 31 - 1 = 2147483647在32位的1 << 63 - 1 = 9223372036854775807情况下,在64位的情况下.
请注意,作为实现限制,您可能无法准确添加max-int元素,但数量级将相同.
由于内置map类型使用hashmap实现,访问时间复杂度通常为O(1),因此将很多元素添加到地图是完全正常的,您仍然可以非常快速地访问元素.请注意,但是添加许多元素会导致重新散列并重建内部,这将需要一些额外的计算 - 这可能会在向地图添加新键时偶尔发生.
如果您可以"猜测"或估算地图的大小,则可以创建具有较大容量的地图,以避免重新散列.例如,你可以为这样的一百万个元素创建一个包含空间的地图:
m := make(map[string]int, 1e6)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3530 次 |
| 最近记录: |