我感觉到dictionary<T>是一个非常强大好用的类,假使输入了100W个键值对,也能迅速从键得到值。我对它的实现原理不明白,有谁能简单介绍吗??

解决方案 »

  1.   

    跟   Hashtable 一样吧
    我市这么人为的
      

  2.   

    会根据Key通过Hash计算来得到其应存放的虚拟内存地址,这也是在哈希表中Key必须唯一的原因,当我们按照Key进行查找时,首先就是根据Key计算出其所存放的虚拟内存地址,去对应的内存地址找数据,得到其Value。
      

  3.   

    内部存了一个HashCode的缓存表,先对比HashCode(int),因为是对int进行搜索,所以很快,如果HashCode相等再对比具体值。
      

  4.   

    所以使用Dictionary<TKey, TValue>时,如果TKey用的是你的自定义类型,那么这个类型的GetHashCode()方法非常重要。
      

  5.   

    Dict <TKey,TValue>是由CLR支持泛型操作,速度快,没有类型转换操作,即完全是类型安全
    属于哈希表的范畴
    http://msdn.microsoft.com/zh-cn/library/xfhwa508(VS.80).aspx
      

  6.   

    游标链表做成的分离链接法“桶”Dictionary <,>已经采用游标链表做成的分离链接法“桶”
    代替Hashtable的开放定址法。
    所以就没有那个线性同余的双散列了。
    Dictionary <,>是设计用来取代Hashtable 的,
    后者的算法应该具有更大的优越性。Dictionary 的缺陷是同步复杂,据说有.net4.0中有解决。(代价是放弃CAS安全策略)
      

  7.   

    最好的教案,算法并不复杂
    http://www.docin.com/p-15402893.html
      

  8.   

    http:// www. pin 5i .com / showtopic - 20570 . html要命了,总是说:
    您的回复正文中有非法词或词组!要把地址分开打