浅谈C# Dictionary(版本:DotNet48)
原理和处理问题是:每个Hash值对应一个索引,就需要声明一个超级大容量的数组,而且两个不同的key生成的哈希值也有可能相同,这就会产生Hash碰撞。前者用哈希桶,将Hash值分类装到一个个桶里,减小了索引的范围,也使查找的效率更高;字典内部是通过两个数组存储,一个是哈希桶用于解决哈希冲突(拉链法),存储的是每个链表的头结点Entry下标。一个是Entry数组,内部形成一个链表,存储每一个数据实体。FindEntry:寻找实体的函数,用Hash算法获得哈希码,桶下标是根据Hash值除以桶长度求余获得;
原创
2024-06-04 12:04:36 ·
253 阅读 ·
0 评论