(10)C# 基础—— Hashtable(哈希表)

.NET C# Web开发学习之路(十)—— Hashtable(哈希表)

Hashtable概述

Hashtable通常称为哈希表,用于表示键/值对的集合,这些键/值对根据键的哈希代码进行组织,其没个元素都是一个存储于DictionaryEntry对象中的键/值对。键不能为空引用,但值可以。

Hashtable的构造函数有多种,这里介绍两种最常用的。

1、使用默认的初始容量、默认加载因子、默认哈希代码提供程序和默认比较器来初始化Hashtable类的新的空实例。

    public Hashtable()

2、使用指定的初始容量、默认加载因子、默认哈希代码提供程序和默认比较器来初始化Hashtable类的新的空实例。

    public Hashtable(int capacity)//capacity指Hashtable对象最初可包含的元素的近似数目。

Hashtable常用属性及说明

属性 说明
Count 获取包含在Hashtable中的键/值对的数目
IsFixedSize 获取一个值,该值指示Hashtable是否具有固定大小
IsReadOnly 获取一个值,该值指示Hashtable知否为只读
IsSynchronized 获取一个值,该值指示是否同步对Hashtable的访问
Item 设置或获取与指定的键相关联的值
Keys 获取包含Hashtable中的键的ICollection
SyncRoot 获取可用于同步Hashtable访问的对象
Values 获取包含Hashtable中的值的ICollection

添加Hashtable元素

Add方法:向Hashtable中添加元素

    public virtual void Add(Object key,Object value)

说明:

  • key:要添加的元素的键
  • value:要添加的元素的值,可以为空引用

删除Hashtable元素

1、Clear方法:从Hashtable中移除所有元素

    public virtual void Clear()

例:

    static void Main(string[] args)
    {
        Hashtable hashtable =  new Hashtable();
        hashtable.Add("id","BH0001");
        hashtable.Add("name","TM");
        hashtable.Add("sex","Man");
        hashtable.Clear();
        Consol.WriteLine(hashtable.Count);
    }

程序运行结果为
0

2、Remove方法:从Hashtable中移除带有指定键的元素

    public virtual void Remove(Object key)
    //其中key是要移除的元素的键

例:

    static void Main(string[] args)
    {
        Hashtable hashtable =  new Hashtable();
        hashtable.Add("id","BH0001");
        hashtable.Add("name","TM");
        hashtable.Add("sex","Man");
        hashtable.Remove("sex");
        Consol.WriteLine(hashtable.Count);
    }

程序运行结果为:
2

遍历Hashtable元素

Hashtable的遍历与数组的遍历类似,都可以使用foreach语句。但是,Hashtable中的元素是一个键/值对,因此需要使用DictionaryEntry类型来进行遍历。DictionaryEntry表示一个键/值对的集合。

例:

        static void Main(string[] args)
        {
            Hashtable hashtable =  new Hashtable();
            hashtable.Add("id","BH0001");
            hashtable.Add("name","TM");
            hashtable.Add("sex","Man");
            Console.WriteLine("\t 键 \t 值");
            foreach(DictionaryEntry dicEntry in hashtable)
            {
                Console.WriteLine("\t"+dicEntry.Key+"\t"+dicEntry.Value);
            }
        }

程序运行结果为:
键 值
name TM
sex Man
id BH0001

查找Hashtable元素

1、Contains方法:用来确定Hashtable中是否包含特定键

    public virtual bool Contains(Object key)

说明:

  • key:要在Hashtable中定位的键
  • 返回值:如果Hashtable中含有指定键的元素,返回True,否则返回False

2、ContainsValue方法:确定Hashtable中是否包含特定值

    public virtual bool ContainsValue(Object value)

说明:

  • value:要在Hashtable中定位的值,可以为空引用
  • 返回值:如果Hashtable中含有指定值的元素,返回True,否则返回False
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章