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指针,从而指向下一个值(拉链法解决哈希冲突)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了