HashTable的用法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HashTable的用法

C#中HashTable的用法 一,哈希表(Hashtable)简述 ? 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对. 二,哈希表的简单操作 ?在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value); ?在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key); ?从哈希表中移除所有元素:?????????? HashtableObject.Clear();? ?判断哈希表是否包含特定键key:????? HashtableObject.Contains(key); ?下面控制台程序将包含以上所有操作: using System; using System.Collections; 使用Hashtable时,必须引入这个命名空间 class hashtable { ? public static void Main() ? { ? Hashtable ht=new Hashtable(); 创建一个Hashtable实例 ? ht.Add(E,e);添加keyvalue键值对 ? ht.Add(A,a); ? ht.Add(C,c); ? ht.Add(B,b); ? string s=(string)ht[A]; ? if(ht.Contains(E)) 判断哈希表是否包含特定键,其返回值为true或false ??? Console.WriteLine(the E keyexist); ? ht.Remove(C);移除一个keyvalue键值对 ? Console.WriteLine(ht[A]);此处输出a ? ht.Clear();移除所有元素 ? Console.WriteLine(ht[A]); 此处将不会有任何输出 ? } } 三,遍历哈希表 ?遍历哈希表需要用到DictionaryEntry Object,代码如下: ?for(DictionaryEntry de in ht) ht为一个Hashtable实例 ?{ ?? Console.WriteLine(de.Key);de.Key对应于keyvalue键值对key ?? Console.WriteLine(de.Value);de.Key对应于keyvalue键值对value ?} 四,对哈希表进行排序 ? 对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法: ?ArrayList akeys=new ArrayList(ht.Keys); file别忘了导入System.Collections ?akeys.Sort(); file按字母顺序进行排序 ?for(string skey in akeys) ?{ ?? Console.Write(skey + ); ?? Console.WriteLine(ht[skey]);排序后输出 ?} 百科名片类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 目录 简述 简单操作 遍历哈希表 对哈希表进行排序 编辑本段 简述   Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索。加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度。初始容量和加载因子这两个参数只是对该实现的提示。关于何时以及是否调用 rehash 方法的具体细节则依赖于该实现。   通常,默认加载因子(.75)在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查找某个条目的时间(在大多数 Hashtable 操作中,包括 get 和 put 操作,都反映了这一点)。   初始容量主要控制空间消耗与执行 rehash 操作所需要的时间损耗之间的平衡。如果初始容量大于 Hasht

文档评论(0)

didala + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档