https://www.youtube.com/watch?v=ykYgxzQEeso

Dict 的扩容

image.png

Dict 中的 HashTable 就是数组结合单向链表的实现,当集合中元素较多时,必然导致增多,链表过长,则查询效率会大大降低。

Dict 在每次新增键值对时都会检查负载因子(LoadFactor=used/size),used 时entry 数量,size 是数组大小,满足以下两种情况时候会触发哈希表扩容

image.png

Dict 收缩

image.png

Dict 除了扩容以外,每次删除元素时,也会对负载因子做检查,当 LoadFactor < 0.1 时,会做哈希表收缩: