为了账号安全,请及时绑定邮箱和手机立即绑定

地图中的最大元素数

地图中的最大元素数

Go
料青山看我应如是 2021-11-08 15:49:55
GO 中 Map 中最多可以存储多少个元素?如果我需要经常访问 Map 中的数据,在长时间运行的程序中继续向 Map 添加项目并从中检索是否是个好主意?
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

除了 map-length 类型的最大值是int. 的最大值int取决于您编译到的目标架构,可能是1 << 31 - 1 = 214748364732 位,也可能是1 << 63 - 1 = 922337203685477580764 位。

请注意,作为实现限制,您可能无法准确添加 max-int 元素,但数量级将相同。

由于内置map类型使用 hashmap 实现,访问时间复杂度通常为 O(1),因此向映射添加多个元素完全没问题,您仍然可以非常快速地访问元素。请注意,然而添加许多元素会导致重新散列和重建内部结构,这将需要一些额外的计算 - 在向地图添加新键时偶尔会发生这种情况。

如果您可以“猜测”或估计地图的大小,则可以创建具有大容量的地图以避免重新散列。例如,您可以创建一个包含一百万个元素的空间的地图,如下所示:

m := make(map[string]int, 1e6)


查看完整回答
反对 回复 2021-11-08
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

“最大数量”?实际上没有。

“一个好主意”?衡量,不可能有一个普遍的答案。


查看完整回答
反对 回复 2021-11-08
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信