#青训营 x 字节后端训练营#
Day 33 Map的实现
1、读取一般Map的流程:由key通过hash函数得到哈希值,通过hash值计算该哈希值在数组中的索引位置,若该索引为空,则返回空;若该索引位置不为空,则与要查找的key对比,若相等则返回value,若不等则继续判断链表或红黑树中,是否与要查找的key值相等,相等返回该位置的value,不等则返回空。
2、读取Go Map的流程:与一般Map的流程大致相同,主要有两点不同:①要查找的key-value分别存储在两个数组中,然后将这两个数组作为Key-Value对存储在map中;②因为key-value位置不同,等到key索引后还需要进行偏移量的计算才能得到对象的value。(注:Go中若存在哈希冲突,则将多个相同的key的哈希值放在同一个桶Bucker中)