HashTable与Dictionary哪个性能更好?

本文讨论了在.NET中Dictionary与Hashtable的使用场景。针对单线程环境,Dictionary由于类型明确且无需装箱拆箱操作,因此效率更高;而在多线程环境中,Hashtable因自带线程安全性而更优。文章通过实例展示了两种数据结构的创建与使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题要看怎么说,首先如果是单线程的话,我认为是Dictionary更好,因为Dictionary的原型是Dictionary<(Of <(TKey, TValue>)>),它是可以确定类型的,当然

它还支持贬型,而Hashtable它内部的value都是object类型,所以每次都要进行装箱和拆箱的操作。

但如果是多线程的话,那Dictionary就要注意了,因为它不是线程安全的,必须通过lock进行锁定才行,而这点Hashtable就更好一些,它完全是纯种安全的。

使用方法:

HashTable ht=new HashTable();//实现 IDictionary接口

ht.Add(1,"zzl");
ht.Add(2,"zhz");
ht.Add(3,"zql");

Dictionary<int,string> dic=new Dictionary<int,string>();//它被指明了具体的类型

dic.Add(1,"zzl");
dic.Add(2,"zhz");
dic.Add(2,"zql");

转载于:https://www.cnblogs.com/lori/archive/2012/02/07/2341569.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值