C#数据结构——Dictionary

目录

基本概念

Dictionary与Hashtable:

性能消耗

线程安全性

构造Dictionary

 无参构造

指定初始容量

使用初始值

拷贝构造

常用属性

Keys

Values

常用方法

Add(TKey key, TValue value) 

Dictionary[key] = value

ContainsKey(TKey key)

ContainsValue(TValue value)

TryGetValue(TKey key, out TValue value)

Rmove(TKey)

Remove(TKey key, out TValue value)


基本概念

        Dictionary是一个泛型集合,它存储唯一键和值的集合,其中每个键都是唯一与一个值关联Dictionary内部被视为是无序的,但Dictionary的查找时间复杂度是O(1),因此Dictionary通常用于存储不关心顺序、但需要频繁查找的数据。同时,Dictionary本身也是动态扩容的数据结构,因此不需要关心字典容量问题。

Dictionary与Hashtable:

        事实上,无论是Dictionary还是Hashtable,其底层都是哈希表,但这并不意味着这两种数据结构是完全相同的:

性能消耗

        从性能消耗上来讲,由于Dictionary是泛型的,因而使用字典时并不需要装箱、拆箱的操作,并且从Dictionary中取出数据进行操作时也不需要对数据进行类型判断,因而Dictionary效率更高。

        Hashtable则不是泛型,其键和值都是object类型,因此使用Hashtable时免不了装箱、拆箱的操作,同时由于涉及拆箱,因此需要在拆箱前对数据进行类型判断,以防止错误的数据类型转换。

线程安全性

        Dictionary并不是一个线程安全的数据结构,因此Dictionary更推荐在单线程的程序中使用;Hashtable是线程安全的因此在多线程程序中更推荐使用Hashtable

构造Dictionary

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值