首页 > 其他 > 详细

Dictionary和Hashtable的一些异同

时间:2015-07-06 14:03:20      阅读:257      评论:0      收藏:0      [点我收藏+]

DictionaryHashtable 区别:

DictionaryHashtable 区别
Dictionary Hashtable 
支持范型 不支持
需要自己做线程同步 通过调用 Synchronized() 方法可以获得线程安全的类型
枚举类型是KeyValuePair 枚举类型是DictionaryEntry
.Net 2.0开始有 .Net 1.0开始有
System.Collections.Generic命名空间下 System.Collections命名空间下
获取同一个不存在的key时抛出异常 获取同一个不存在的key时返回NULL
值类型不需要装箱/拆箱,可能会更快些 值类型value types需要装箱/拆箱boxing/unboxing

 

 

 

 

 

 

 

 

 

相同点

内部都是hashtable实现,通过key访问数据比较快

都需要不可变的,唯一的key

key都需要有自己的GetHashCode()方法

 

其他类似的.Net 集合(用于替代Dictionary和Hashtable的备选项)

ConcurrentDictionary  - 用于多并发、线程安全的字典

HybridDictionary      - System.Collections.Specialized命名空间下,优化了性能(在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到Hashtable。)

OrderedDictionary    - System.Collections.Specialized命名空间下,值可以通过数字索引访问,因为元素添加的时候已经被指定位置了。public void Insert(int index, object key, object value);

SortedDictionary      - 元素插入时自动的被排序

StringDictionary      - System.Collections.Specialized命名空间下,将键和值强类型化为字符串而不是对象,对做相应的优化。

 

Dictionary和Hashtable的一些异同

原文:http://www.cnblogs.com/harryhan1983/p/4624152.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!