C#哈希表

  遇见好几次哈希表,但都不怎么明白,今天就让我明白一回,下面跟着小编来学习吧!

芝士

  • 哈希表以键值对的形式存值,key—键,Value—值
  • 键值对均是object类型
    例:
    在这里插入图片描述
  • 键值对中的键就是为了找数据用的,必须提供,不允许重复
    例:
            Hashtable ht = new Hashtable();

            ht.Add(123, 123);
            ht.Add("老宋", 18);
            ht.Add('x', 12);
            ht.Add("老王", "老付");

            Console.WriteLine("添加成功");
            Console.ReadKey();

在这里插入图片描述
  运行完上述代码后再加一行代码ht.Add("老王", "小杨");

            Hashtable ht=new Hashtable();

            ht.Add(123, 123);
            ht.Add("老宋",18);
            ht.Add('x',12);
            ht.Add("老王","老付");
            ht.Add("老王", "小杨");

            Console.WriteLine("添加成功");
            Console.ReadKey();

在这里插入图片描述
  通过这个例子,我们发现在加入ht.Add("老王", "小杨");后,程序报异常,这是为什么呢?因为在程序中已经存在一个“老王”的键,而又加入一个“老王”的键,键相同所以报异常。这也说明在哈希表中,key不能相同,一旦相同肯定会报异常。

  • Hashtable使用键作为寻找的方式,是一种无序的结构(显示的时候可能是无序的)
  • 使用<hashtable实例名>[键],将返回object类型,得到由键对应的数据,也就是说知道key,也就知道了Value,如果删掉key,Value也就没有了
    例:
            Hashtable ht = new Hashtable();

            ht.Add("小赵", "老马");
            ht.Add(12,1002);
            ht.Add("小王",132);

            foreach (var key in ht.Keys )
            {
                Console.WriteLine("key{0}-----value{1}",key,ht[key]);
            }

            Console.WriteLine("添加成功");
            Console.ReadKey();

在这里插入图片描述

  • 强转,使用里氏代换原则

  • 补充
    在这里插入图片描述
    不知道存的Key是什么类型
    在这里插入图片描述
    方法:先写上var,然后进行调试就会显示出所代表的类型,然后进行更改。
    在这里插入图片描述

小编有话说

  我们每走一步,都是一个新的起点,这一个个起点连接成我们一生的轨迹。不要害怕开始,经历了起步时的艰难,方能产生飞跃的嬗变;不要畏惧结束,所有的结局都是一个新的开端。到头来我们会发现,人生如圆,终点亦是起点。不要奢望太多,得到的终归要失去;不要敬畏太甚,能够主宰你的,永远是你自己。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值