C#中的HashTable 和 Dictionary的区别

在.NET 下的HashTable 和Dictionary 都是表示键值对的集合,那么我们该如何选择使用Hash Table 还是使用Dictionary呢,他们的区别如下:

1、Dictionary的实现是顺序存储的,而HashTable由于使用的是哈希算法进行数据的存储,是无序的;

2、Dictionary的key和value是泛型存储,hashtable的key和value都是objext

3、Dictionary是泛型存储,不需要进行类型的下转换,hashtable由于使用的是objct。在读取值时需要进行类型的转换,所以比较耗时;

4、单线程程序中推荐使用Dictionary,有泛型优势,且读取速度较快,容易利用更充分,在多线程程序中推荐使用hashtable,默认的hashtable允许单线程写入,多西拿出读取,对哈市table进一步调用Sysnchronized()方法可以获得完全线程安全的类型。而Dirctionary非线程安全,必须认为的使用lock语句进行保护,效率大减;

5、key是整形的dictionary的效率要比hashtable快,如果是字符型的而Dictiona没有hashtable快;

 

转载于:https://my.oschina.net/u/2475253/blog/3076663

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值