Dictionary原理(转)

原文:【C#】三分钟,深入理解C# 哈希表(Dictionary)_c# dictionary 为什么会hash冲突-CSDN博客

1.哈希函数:将key转成hashcode,这个hashcode还要和字典的count取余,确保索引落到桶数组中。

2.哈希桶:用来解决哈希冲突的链表、没有冲突一个桶对应一个entry(有key、value,真正的数据),有冲突就是一个链表。

对于C#中的Dictionary,具体实现如下:

1.最小数据单元式一个叫Entry的结构体。用entry数组存放元素。

2.bucket数组用于存放hash桶。

3.调用Add的时候,会根据Key生成一个hashcode,根据这个hashcode去决定该数据所在的桶。每个桶会存放一个整型值,这个值指向桶中存放的第一个元素(真正数据都在entry数组中).entry中的每一个值都有next指针,从而指向下一个值(拉链法解决哈希冲突)

 

posted @   mc宇少  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示