Hashtable和dictionary的区别

1:单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.
 2:多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.
 3:Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便.

            




 Dictionary<int, string> dic = new Dictionary<int, string>();
            dic.Add(1, "切尔西");
            dic.Add(2, "巴萨");
            dic.Add(3, "曼联");
            foreach (KeyValuePair<int, string> kvp in dic)            //Dictionary的遍历
            {
                Console.WriteLine("Key:{0},Value:{1}" + "<br/>" + "<br/>" + "<br/>", kvp.Key.ToString(), kvp.Value.ToString());
            }

            Hashtable ht = new Hashtable();
            ht.Add(1, "昕哥");
            ht.Add(2, "MacSed");
            ht.Add(3, "Jim老师");
            ht.Add(4, "A哥");
            ht.Add(5, "播个");
            foreach (DictionaryEntry item in ht)    //Hashtable的遍历
            {
                Console.WriteLine("Key:{0},Value:{1}", item.Key.ToString(), item.Value.ToString());
            }
            ArrayList alv = new ArrayList(ht.Values);
            alv.Sort();
            for (int i = 0; i < alv.Count; i++)
            {
                Console.WriteLine(alv[i]);
            }

Hashtable中的key和value都是object类型,而dictionary中需要指定类型



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值