zoukankan      html  css  js  c++  java
  • 黑马程序员-hashtable

      散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表
      给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数
     

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

    namespace HashTable

    {

        class Program

        {

            static void Main(string[] args)

            {

                Hashtable ht = new Hashtable();

                ht.Add("张三", "12345678");

                ht.Add("李四", "010 - 1234");

                ht.Add("王五", "12345678901");

     

                #region 遍历查找

                if (ht.ContainsKey("王五1"))

                {

                    Console.WriteLine(ht["王五1"]);

                }

                else

                {

                    Console.WriteLine("不存在");

                }

     

                // 如何遍历这个集合呢?

                foreach (DictionaryEntry temp in ht)

                {

                    Console.WriteLine(temp.Key + " " + temp.Value);

                }

                // 遍历整个集合的键

                foreach (string temp in ht.Keys)

                {

                    Console.WriteLine(temp);

                }

                #endregion

     

                /*

                 * 我现在加入一个名字叫“张三”的人,可以吗?

                 * Hashtable中键不允许重复

                 */

                ht.Add("张三", "12345678");

                /*

                 * 未处理 ArgumentException(参数异常)

                 * 已添加项。字典中的关键字:“张三”所添加的关键字:“张三”

                 */

     

                Console.ReadKey();

            }

        }

    }

  • 相关阅读:
    微信小程序学习系列(5) 微信小程序逻辑层
    微信小程序学习系列(4) 微信小程序架构文件
    微信小程序学习系列(3) 如何优雅的使用微信开发者工具
    使用Sqlserver 2012 导出表数据为SQL脚本
    Sqlserver2012 使用sql语句增加(或删除)表一个字段
    微信小程序学习系列(2) 使用AppId创建一个微信小程序
    微信小程序学习系列(1) 如何注册微信小程序
    微信小程序如何使用Vant
    vs2017搭建自己的nuget服务器
    使用swagger实现在线api文档自动生成 在线测试api接口
  • 原文地址:https://www.cnblogs.com/xsj891107/p/3668486.html
Copyright © 2011-2022 走看看