博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dictionary、SortedDictionary、Hashtable 、SortedList使用条件小结
阅读量:4625 次
发布时间:2019-06-09

本文共 702 字,大约阅读时间需要 2 分钟。

     HashTable数据结构存在问题:空间利用率偏低、受填充因子影响大、扩容时所有的数据需要重新进行散列计算。虽然Hash具有O(1)的数据检索效率,但它空间开销却通常很大,是以空间换取时间。所以Hashtable适用于读取操作频繁,写入操作很少的操作类型。一般用在多线程操作中,不需要加锁。

      Dictionary<TKey, TValue> 会在内部维护一个链表数组。对于这个链表数组 L0,L1,...,LM-1, 散列函数将告诉我们应当把元素 X 插入到链表的什么位置。然后在 find 操作时告诉我们哪一个表中包含了 X。 这种方法的思想在于:尽管搜索一个链表是线性操作,但如果表足够小,搜索非常快。使用在单线程操作中,多线程中需要加锁,会影响效率。

    

  • SortedList<(Of <(TKey, TValue>)>)  使用的内存比 SortedDictionary<(Of <(TKey, TValue>)>) 少。
  • SortedDictionary<(Of <(TKey, TValue>)>) 可对未排序的数据执行更快的插入和移除操作:它的时间复杂度为 O(log n),而 SortedList<(Of <(TKey, TValue>)>) 为 O(n)。
  • 如果使用排序数据一次性填充列表,则 SortedList<(Of <(TKey, TValue>)>) 比 SortedDictionary<(Of <(TKey, TValue>)>) 快。

转载于:https://www.cnblogs.com/DamonOnly/archive/2013/05/26/3099998.html

你可能感兴趣的文章
百度之星 1004 Labyrinth
查看>>
crm创建报告补充导航
查看>>
几种开源分词工具的比較
查看>>
等于null和长度0有区别,null不能调用任何方法,如Tostring 和.length 源于checkbox的未勾选返回值为null,勾选的返回值为on...
查看>>
项目管理专业 知识点总结(三)
查看>>
关于Android 打开新的Activity 虚拟键盘的弹出与不弹出
查看>>
“万能数据库查询分析器”在四大软件下载网站的排行榜中均入围前10,可喜可贺...
查看>>
和菜鸟一起学linux总线驱动之smartcard操作模式和协议与参数选择
查看>>
android 开发工具(转)
查看>>
python中的uuid4
查看>>
CSS 必知的7个知识点
查看>>
asp.net mvc 生成条形码
查看>>
单调队列
查看>>
Attribute value is quoted with " which must be escaped when used within the value 问题解决
查看>>
作业01
查看>>
web学习记录-JS-12
查看>>
ubuntu安装软件包apt-get和dpkg方法
查看>>
工作中vue项目前后端分离,调用后端本地接口出现跨域问题的完美解决
查看>>
BZOJ3894: 文理分科
查看>>
动态生成元素动作绑定,jquery 1.9如何实现
查看>>