dictionary - 初始化地图时如何设置容量可以防止重新散列
问题描述
s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
capacity := len(s)
m := make(map[int]bool, capacity)
for _, n := range s {
m[n] = true
}
地图是否会在 for 循环中重新散列?或者容量应该乘以一个因子以防止重新散列,例如:
capacity := len(s) * 1.3
解决方案
你不需要一个因素。规格:制作切片、地图和元素:
make
使用地图类型和大小提示调用n
将创建一个带有初始空间的地图以保存n
地图元素。精确的行为取决于实现。
也来自内置的文档make()
:
地图:为空地图分配足够的空间来容纳指定数量的元素。可以省略大小,在这种情况下分配一个小的起始大小。
推荐阅读
- testing - 如何使用 jest 测试 iFrame 的内容
- android - 数据库不更新
- javascript - 哪些 js Charts 提供了关于数据的动态图表
- sql - 在单引号中使用 'like' 时出现 Postgres 语法错误
- java - httpclient 连接重置
- sql - 我们如何获得当前 24 小时的最新记录,其他留下以下所有记录
- javascript - 哪个是使用部分标签的好概念?
- javascript - 赛普拉斯测试表单
- javascript - TypeError: routingState.equals 不是函数 | 笑话测试用例
- java - Log4J 正在控制台中创建递增的日志