2020-11-12

你知道为什么字典Dictionary的查找速度快吗?

字典Dictionary的内部实现机制
1.Dictionary的内部结构是哈希表,从而可以快速进行查找。
Dictionary添加元素的过程原理:buckets(哈希表)记录了元素的在元素列表的存储位置,也就相当于一个映射列表。在查找的时候,就可以通过key值的哈希值来与buckets数组长度求余来获得元素在元素列表中的索引,这样就可以快速定位元素的位置,从而获得元素的key对应的Value值。
2.解决冲突
在添加元素过程中,有一个很重要的问题,如果产生冲突怎么办?即如果后面需要插入的一个元素的key值的哈希值也为6,此时tragetBucket的值也是为0,但元素列表中0的位置已经存放了原元素了,这样就出现了冲突,那Dictionary是怎么处理这个冲突的呢?处理冲突的方法有很多种,Dictionary处理的方式是链接法。Dictionary会把发生冲突的元素链接之前元素的后面,通过next属性来制定冲突关系。
3.Dictionary如何实现快速查找呢?
Dictionary之所以能实现快速查找元素,其内部使用哈希表来存储元素对应的位置,然后可以通过哈希值快速地从哈希表中定位元素所在的位置索引,从而快速获取到key对应的Value值。
4.总结
可以说,Dictionary的实现原理也是一种空间换时间的思路。多使用一个buckets的存储空间来存储元素的位置,从而来提升查找速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值