你知道为什么字典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的存储空间来存储元素的位置,从而来提升查找速度。