
1、Dictionary的查询速度很快,而且初始化后的Dictionary,的确很方便使用有网友

通过内嵌Dictionary/Collection对象,的确可以构建出复杂的数据结构,用于应对复杂的数据场景。

Dictionary内部是采用怎样的算法?结构又是怎样的?什么场景更适合?官方几乎没有透露相关信息。
Table
Dictionary是构建在数组上的,当有人怀疑数组与Dictionary,谁的性能更好时,那么这里就是结论了。

的
文件的网络传输通常使用CRC值校验完整性资源站(如百度云盘)通常使用MD5值标识文件互联网账号登录(如QQ)通常使用账号密码的Hash值代替账号密码进行校验来提升安全性等
Hash算法本身就存在1个无法避免的漏洞:无限映射有限,就存在重复的可能,这就是碰撞。

将Hash值作为验证手段,是建立在算力匮乏的假设上的
Dictionary中也存在Hash值冲突的情况,也就是相同的Hash值,可能对应好几个Key

链表法就是最常用的。链表法就像拉链一样,将冲突信息首尾串联在一起制约HashTable(Dictionary)性能的,就在这个地方。
一是设计出1个非常牛逼的Hash算法,对于任意数据样本都满足均匀分布,从而根本上减少冲突。二是扩大索引范围。以空间换时间的经典场面。Dictionary也不例外
Dictionary究竟开销如何呢?新建首个空的实例大约消耗120K内存,此后每个新建空实例约占5K。
Dictionary其实并不适合大规模数据的处理能用数组,就直接用数组了
BtOfficer,我打算将Dictionary周边说完后,来一篇针对Dictionary更深入,也更系统的分析。