Bläddra i källkod

09 golang中 哈希 map应用

YWJL 2 år sedan
förälder
incheckning
da3dbb028b
1 ändrade filer med 15 tillägg och 1 borttagningar
  1. 15 1
      Go语言核心36讲/09/read.md

+ 15 - 1
Go语言核心36讲/09/read.md

@@ -21,4 +21,18 @@
 3. 哈希表根据key的哈希值定位到哈希桶,查找其中键,因为键和值是绑定的,如果找到了键,就能返回其值
    *Go语言会把所有的哈希值存起来,传入key后,先取哈希值比较,如果都没有,那就直接返回,如有相等的,再比较键。*
 
-4. 存在哈希冲突时,两种方法,拉链法与开放寻址法,一般用前者。参考2,有key肯定能找到值的。
+4. 存在哈希冲突时,两种方法,拉链法与开放寻址法,一般用前者。参考2,有key肯定能找到值的。
+
+## 3. 应用
+
+1. 键转为哈希值,把要查找的键与哈希桶中的键做对比,比较耗时
+
+2. 所以求哈希,判等的速度越快,就越适合作为键类型
+
+3. key类型占用字节数越小,做哈希就越快
+
+4. 数组、结构体、接口类型,不适合做哈希。
+
+5. go的map 并发不安全。非原子操作需要枷锁,并发读写需要加锁,判断一个操作是否是原子的可以使用 go run race 命令做数据的竞争检测
+
+