HashTable使用举例--C#

一,哈希表(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 key exist");

   ht.Remove("C");//移除一个keyvalue键值对

   Console.WriteLine(ht["A"]);//此处输出a

   ht.Clear();//移除所有元素

   Console.WriteLine(ht["A"]); //此处将不会有任何输出

   }

 }

三,遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:

for(KeyValuePair 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); //别忘了导入System.Collections

 akeys.Sort(); //按字母顺序进行排序

 for(string skey in akeys)

 {

    Console.Write(skey + ":");

    Console.WriteLine(ht[skey]);排序后输出

 } 

 

  在.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 key exist");

   ht.Remove("C");//移除一个keyvalue键值对

   Console.WriteLine(ht["A"]);//此处输出a

   ht.Clear();//移除所有元素

   Console.WriteLine(ht["A"]); //此处将不会有任何输出

   }

 }

三,遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:

for(KeyValuePair 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); //别忘了导入System.Collections

 akeys.Sort(); //按字母顺序进行排序

 for(string skey in akeys)

 {

    Console.Write(skey + ":");

    Console.WriteLine(ht[skey]);排序后输出

 } 

 

相关推荐:

Python fun函数举例_fun函数实际编程案例演示

Python中\_fun是开发者自定义的、按惯例表示“内部使用”的函数名,下划线前缀无语法特殊性,仅作命名约定;双下划线\_\_fun才触发名称改写。 Python里没有内置的_fun函数——它既不是标准库函数,也不是Python语法关键字。你看到的_fun,几乎总是开发者自定义的函数名,下划线前缀...

group by having用法举例

groupbyhaving子句用于对分组后的数据进行筛选。它首先对数据进行分组,然后根据指定条件过滤结果。常见用法包括:找出特定分组的总和或平均值。查找满足特定条件的分组。对分组数据进行聚合计算,例如求和、求平均值或计数。 GroupByHaving用法举例 GroupByHaving子句是SQL中...

深入了解哈希算法

什么是哈希算法?相信大部分人都不太了解,今天小编为了让大家更加了解哈希算法,给大家总结了以下内容,一起往下看吧。 HashTable--哈希表,是一种典型的"key--value"形式的数据结构,构建这种数据结构的目的,是为了使用户通过key值快速定位到我的value,...

深入浅析Java中HashMap与HashTable容器的区别

这篇文章给大家介绍深入浅析Java中HashMap与HashTable容器的区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、HashMapHashMap继承抽象类AbstractMap,实现接口Map、Cloneable,Serializable接口。HashMap是一种...

Tomcat和Hashtable碰撞拒绝服务漏洞的示例分析

这篇文章给大家介绍Tomcat和Hashtable碰撞拒绝服务漏洞的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。之前你可能听说过关于Java中的哈希表实现上的漏洞,现如今因为Tomcat使用了哈希表来存储HTTP请求参数,因此也受此问题影响。目前为止,Oracle尚未...

HashTable、HashMap、TreeMap三者有什么区别

这篇文章将为大家详细讲解有关HashTable、HashMap、TreeMap三者有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。项目   线程安全   是否支持null键值&nbs...

HashMap和Hashtable有什么不同

HashMap和Hashtable有什么不同,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。线程安全两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全。Hashtable的实现方法里面都添加了s...

java中HashMap和Hashtable之间的区别有哪些

小编给大家分享一下java中HashMap和Hashtable之间的区别有哪些,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!java中的HashMap和Hashtable示例下面我们先通过示例来看看HashMap和Hashtable的区别。HashMap和Hashtable将键/值对存...