Go-map
本文将简单讲解一下map的常见使用,会把主要的流程描述一下,具体细节不会过多阐述(因为我也没看全,需要遇到问题时再仔细看源码)。我用Go时间还不长,还在学习阶段,如果有误,欢迎批评指正,感谢~ 1 哈希计算与碰撞 1.1 哈希计算 map在各个语言中,都是很常见的。其底层运用的就是hash。在Go中也不例外。 hash 计算就是根据key经过hash计算,找到其存储的位置,然后将对应的值存放在这个位置。 1.2 碰撞 通常,讲到hash 计算,就不可避免地讲到hash碰撞。什么意思呢? 就是两个不同的key经过hash计算,找到的位置是一样的。 那么怎么解决呢? 有如下两种方案: (1)开放寻址法: 即如果keyA经过计算,找到了位置A,发现位置A上有元素了,就会一直往后找,知道找到一个空位...阅读全文