C# 通俗说 哈希表
1.何谓哈希
哈希,也程散列。哈希表是一种与数组,链表等不同的数据结构,与他们需要不断的
遍历比较查找的办法,哈希表设计了一个映射关系发f(key)=adress,根据key来计算adress,
这样可以一次查找。f既是存储过程中用来指引数据存储到什么位置的函数,也是将来查找这个位置
的算法,叫做哈希算法。
通俗说:哈希表的本质是数组,只不过数组是通过下标int 1,2,3等等访问,哈希表是通过string的唯一key值访问。通过把string的key值转换为int 1,2,3。换句话说:哈希表是通过哈希函数将key转换为数组下标的数组。
2.哈希算法
哈希算法可以随意设计,比如:直接定址法,平方取中法,除数取余法。哈希算法的本质是
计算一个数字。
3.哈希冲突
由上述可知哈希表本质是数组,数组的长度是固定的,通过key转换而来的int下标是有限的,容易造成重复,这就是哈希冲突。 算法如果不够严谨,会造成哈希冲突,就是查找出来的重复了,即多条记录都映射在一个位置上。哈希冲突跟哈希函数的设计正相关的,随机性越大,那么产生哈希冲突的可能性越小,
在小概率情况如果还有冲突怎么办,这时需要做一些有损的设计,比如哈希再哈希。
4.哈希用途
某些数据会被高频率查询,数据量大,数据类型不唯一。
Hash表,他是一种数据结构,一种效率极高的查找方式。哈希表的核心在于哈希函数的设计,哈希冲突了不要紧,
我们要增加随机性以及对冲突进行适当的有损化处理。
5.字典和哈希表区别?
哈希表和字典在内容实现上比较相似,不同的是字典不需要装箱和拆箱操作,所以在添加数据时
效率上高一点,但是在频繁调用数据时字典更快一些。
哈希表:
①存入数据不限制类型和数量。
②存值时,哈希表以键值对的形式存入数据,且值不允许重复,必须唯一。因为f(key)=y,y必须唯一,得出的key才唯一。
③取值时,取值时找key,key找value。
字典:
①键和值得类型取决于定义字典时的设置类型。
②键必须唯一,值不需要唯一。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述