zoukankan      html  css  js  c++  java
  • C# 哈希表(Hashtable)用法笔记

    一、什么是Hashtable?

    Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。

    当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目

    二、Hashtable 的属性

    1、Count 获取 Hashtable 中包含的键值对个数。

    2、IsFixedSize   获取一个值,表示 Hashtable 是否具有固定大小。

    3、IsReadOnly    获取一个值,表示 Hashtable 是否只读。

    4、Item  获取或设置与指定的键相关的值。

    5、Keys  获取一个 ICollection,包含 Hashtable 中的键。

    6、Values    获取一个 ICollection,包含 Hashtable 中的值。

    三、Hashtable 的方法

    在C#中使用需要引用

    using System.Collections;

    using System.Collections.Generic;

    这两个命名空间

    1、  public virtual void Add( object key, object value );

    用途: 向 Hashtable 添加一个带有指定的键和值的元素。

    2、public virtual void Clear();

    用途:从 Hashtable 中移除所有的元素。

    3、public virtual bool ContainsKey( object key );

    用途:判断 Hashtable 是否包含指定的键。

    4、public virtual bool ContainsValue( object value );

    用途:判断 Hashtable 是否包含指定的值。

    5、public virtual void Remove( object key );

    用途:从 Hashtable 中移除带有指定的键的元素。

    四、HashTable的应用场景

    1、某些数据会被高频率查询

    2、数据量很大

    3、查询字段包含字符串类型

    4、数据类型不唯一

    五、HashTable简单用法实例

    class Program

        {

            static void Main(string[] args)

            {

                // 创建一个Hashtable实例

                Hashtable ht=new Hashtable();

      

                // 添加keyvalue键值对

                ht.Add("A","1");

                ht.Add("B","2");

                ht.Add("C","3");

                ht.Add("D","4");

      

                // 遍历哈希表只能用foreach来遍历,因为Hashtable不能用索引访问

                //遍历key

                foreach(Object item in ht.Keys)

                {

                    Console.WriteLine((string)item);

                }

                //遍历value

                foreach(Object item in ht.Value)

                {

                     

                    Console.WriteLine((string)item);

                }

                foreach (DictionaryEntry de in ht)

                {

                    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

                }

      

                // 哈希表排序

                ArrayList akeys=new ArrayList(ht.Keys);

                akeys.Sort();

                foreach (string skey in akeys)

                {

                    Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

      

                }

      

                // 判断哈希表是否包含特定键,其返回值为true或false

                if (ht.Contains("A"))

                  Console.WriteLine(ht["A"]);

                  

                // 给对应的键赋值

                ht["A"] ="你好";

      

                // 移除一个keyvalue键值对

                ht.Remove("C");

      

                // 遍历哈希表

                foreach (DictionaryEntry de in ht)

                {

                    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

                }

             

                // 移除所有元素

                ht.Clear();

        

                // 此处将不会有任何输出

                Console.WriteLine(ht["A"]);

                Console.ReadKey();

            }

        }

     公众号:原文

  • 相关阅读:
    lldb
    错误记录
    越狱后
    c#学习
    26python类
    day01
    第二冲刺阶段第四天
    第二冲刺阶段第三天
    第五周课后作业
    结对作业
  • 原文地址:https://www.cnblogs.com/hgmyz/p/7150000.html
Copyright © 2011-2022 走看看