DictionaryBase 类是用来创建用户字典的抽象类。 而字典则是利用散列表 (或者有时为单独
的链表)作为潜在的数据结构来把数据存储到键值对内的一种数据结构。键值对作 为
DictionaryEntry 对 象 来 进 行 存 储 , 而 且 必 须 使 用 Key 方 法 和 Value 方 法 来 取 回
DictionaryEntry 对象中的实际值。

    public class myDictionary : DictionaryBase{public myDictionary() { }public void Add(object key, object value){base.InnerHashtable.Add(key, value);}public void Remove(object key){base.InnerHashtable.Remove(key);}public object Get(object key){return base.InnerHashtable[key];}public void Clear(){base.InnerHashtable.Clear();}public int Count(){return base.InnerHashtable.Count;}public void Insert(object key, object value){if (base.InnerHashtable.Contains(key)){base.InnerHashtable.Remove(key);}base.InnerHashtable.Add(key,value);}public DictionaryEntry[] Entrys(){DictionaryEntry[] de = new DictionaryEntry[base.InnerHashtable.Count-1];base.InnerHashtable.CopyTo(de, 0);return de;}}

DictionaryBase 类是一种用作专有字典实现基础的抽象(MusInherit)类。

存储在字典中的键值对实际上是作为 DictionaryEntry 对象来存储的。DictionaryEntry 结构
提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是 Key 属性
和 Value 属性这两个属性(或方法) 。当把键值对录入到字典内的时候,这些方法会返回存
储的值。

就内部而言,会把键值对存储在被称为 InnerHashTable 的散列表对象中。

.NET 框架库提供了一种非常有用的处理散列表的类, 即 Hashtable 类.

Hashtable 类是 Dictionary 对象的一种特殊类型,它存储了键值对,其中的数值都是在源于
关键字的散列代码的基础上进行存储的。

    public class myHashTable{Hashtable ht = new Hashtable();public myHashTable(){ }public void Add(object key, object value){ht.Add(key, value);}public void Remove(object key){if(ht.ContainsKey(key)){ht.Remove(key);}}public object Get(object key){return ht[key];}public void Clear(){ht.Clear();}public int Count(){return ht.Count;}public void Insert(object key, object value){if (ht.Contains(key)){ht.Remove(key);}ht.Add(key, value);}}

Hashtable 类有两个非常有用的方法用来从散列表中取回关键字和数值: 即 Keys 和 Values 。
这些方法创建了一个 Enumerator 对象,它允许使用 For Each 循环或者其他一些技术来检
查关键字和数值。

转载于:https://www.cnblogs.com/Francis-YZR/p/5050681.html

.Net数据结构:DictionaryBase DictionaryEntry Hashtable相关推荐

  1. hashmap的特性?HashMap底层源码,数据结构?Hashmap和hashtable ConcurrentHashMap区别?

    1.hashmap的特性? 允许空键和空值(但空键只有一个,且放在第一位) 元素是无序的,而且顺序会不定时改变 key 用 Set 存放,所以想做到 key 不允许重复,key 对应的类需要重写 ha ...

  2. java源码之HashMap和HashTable的异同

    代码版本 JDK每一版本都在改进.本文讨论的HashMap和HashTable基于JDK 1.7.0_67 1. 时间 HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2.从 ...

  3. 将一个键值对添加入一个对象_细品Redis高性能数据结构之hash对象

    背景 上一节讲Redis的高性能字符串结构SDS,今天我们来看一下redis的hash对象. Hash对象 简介 redis的hash对象有两种编码(底层实现)方式,字典编码和压缩列表编码.在使用字典 ...

  4. Java中的HashMap和HashTable到底哪不同?(原文参考来自码农网)

    HashMap和HashTable有什么不同?在面试和被面试的过程中,我问过也被问过这个问题,也见过了不少回答,今天决定写一写自己心目中的理想答案. 代码版本 JDK每一版本都在改进.本文讨论的Has ...

  5. HashMap 和 HashTable 到底哪不同 ?

    转载自 HashMap 和 HashTable 到底哪不同 ? 代码版本 JDK每一版本都在改进.本文讨论的HashMap和HashTable基于JDK 1.7.0_67.源码见这里 1. 时间 Ha ...

  6. Java 面试之数据结构

    原文地址:https://blog.csdn.net/u012102104/article/details/79773794 常见数据结构 HashMap.Hashtable. ConcurrentH ...

  7. C#框架提供的几种数据结构对单值查找的效率比较

    做分词组件时,有网友提出采用Hashtable 数据结构查找字符串效率较低,建议改为Dictionary,其理由是采用Hashtable 时Key值是object 会触发装箱和拆箱动作,一直对这种说法 ...

  8. 华为架构师整理Redis数据结构的大厂最佳实践

    1 概述 数据结构和内部编码 无传统关系型数据库的 Table 模型 schema 所对应的db仅以编号区分.同一 db 内,key 作为顶层模型,它的值是扁平化的.即 db 就是key的命名空间. ...

  9. HashTable和HashMap的区别

    转载: http://www.importnew.com/24822.html 1.时间 2. 作者 以下是HashTable的作者: 1 2 3 4 5 以下代码及注释来自java.util.Has ...

最新文章

  1. 测量几个光电传感器反向电容
  2. android ui 最新教程,Android更新UI的五种方式,androidui五种
  3. PostgreSQL非交互式键入密码
  4. 猫哥教你写爬虫 002--作业-打印皮卡丘
  5. access重复数据累计_小程序·云开发之数据库自动备份丨云开发101
  6. 如何用Python进行大数据挖掘和分析
  7. Mysql学习总结(27)——Mysql数据库字符串函数
  8. python格式化输出作业_Python格式化输出
  9. 可视化报表Superser
  10. delphi7 获取dll的类_上传quot;定时任务quot;获取系统权限
  11. 10个不太为人所知的,但实用的PHP函数(转)
  12. Golang 实现本地身份证归属地查询
  13. 疫情下的大数据力量:多地政府借力大数据技术,多家企业上马大数据产品
  14. usb鼠标驱动注解及获取鼠标坐标
  15. linux 安装 pcre
  16. 怎样在电脑上下载哔哩哔哩的视频?
  17. cpua55和a53哪个好_OPPOA55和OPPOA53详细参数对比测评详情-哪款更值得购买
  18. R配对样本t检验(PAIRED T-TEST​​​​​​​)
  19. Python 跑深度学习遇到的一些问题集锦
  20. 【Matlab】如何规范地编写一个MATLAB函数文件

热门文章

  1. java queue toarray_java.util.PriorityQueue.toArray(T[] a)方法实例
  2. ajax get before,Ajax beforeSend和complete 方法
  3. JVM性能优化, Part 1 - JVM简介
  4. Android 10 如何关闭selinux权限
  5. 客户端Or服务器端实现清空页面上所有TextBox
  6. 微信小程序——滚动条列表置顶
  7. 常用的dos命令总结
  8. [FATAL] [DBT-10317] Specified SID Name (orcl) already exists.dbca建库报错
  9. 人工智能成手机新卖点?看华为Mate10有啥不一样
  10. 怎样设置计算机保护密码,怎样电脑设置密码保护