zoukankan      html  css  js  c++  java
  • Hashtable哈希表

      最近做的一个购物商城的项目,其中购物车的部分需要用到Hashtable来保存用户购买的商品,所以在这里对Hashtable哈希表的知识做以下总结.

      1,因为Hashtable是在命名空间System.Collections下,所以首先得引用命名空间System和System.Collections,代码如下:

      using System;

      using System.Collections;

      2,Hashtable的创建,添加数据(书面说法叫初始化),设置和获取数据以及各种方法的使用,具体代码如下:

    View Code
    class Example
    {
    public static void Main()
    {
    //實例化一個Hashtable對象
    Hashtable ht = new Hashtable();

    //利用Add方法向Hashtable中添加數據.
    ht.Add("01", "麥子");
    ht.Add("02", "科比");
    ht.Add("03", "韋德");
    ht.Add("04", "喬丹");
    ht.Add("05", "波什");

    //當向Hashtable中添加一個已經存在的key時拋出異常.
    try
    {
    ht.Add("01", "mcgrady");
    }
    catch
    {
    Console.WriteLine("key=\"01\"的元素已經存在!");
    Console.ReadKey();
    }

    //可以通過key取得Hashtable的value,形式如:ht["01"]
    Console.WriteLine("key=\"01\"對應的value={0}",ht["01"]);
    Console.ReadKey();

    //可以通過key修改其value值.
    ht["01"] = "mcgrady";
    Console.WriteLine("key=\"01\",value={0}",ht["01"]);
    Console.ReadKey();

    //如果key不在當前Hashtable中,則在當前Hashtable中增加一個鍵值對.
    ht["06"] = "羅伊";
    Console.WriteLine("key=\"06\",value={0}", ht["06"]);
    Console.ReadKey();

    //利用ContainsKey方法檢測key在當前Hashtable中是否存在,通常用于向Hashtable中插入數據之前檢測key是否存在,如果不存在才執行插入操作.
    if (!ht.ContainsKey("07"))
    {
    ht.Add("07","皮爾斯");
    Console.WriteLine("key=\"07\",value={0}", ht["07"]);
    Console.ReadKey();
    }
    Console.WriteLine(); //打印一個空行.

    //利用foreach循環來遍歷輸出Hashtable中的數據.
    foreach (DictionaryEntry de in ht)
    {
    Console.WriteLine("key={0},value={1}", de.Key,de.Value);
    Console.ReadKey();
    }

    //使用values屬性取得所有的value集合.
    ICollection ValueColl = ht.Values;
    foreach (string s in ValueColl)
    {
    Console.WriteLine("value={0}",s);
    Console.ReadKey();
    }

    //使用keys屬性取得所有的key集合.
    ICollection KeyColl = ht.Keys;
    foreach (string k in KeyColl)
    {
    Console.WriteLine("key={0}", k);
    Console.ReadKey();
    }

    //使用Remove方法移除帶指定key的元素.
    Console.WriteLine("移除key為\"01\"的元素");
    ht.Remove("01");
    if (!ht.ContainsKey("01"))
    {
    Console.WriteLine("key為\"01\"的元素已經被移除了!");
    Console.ReadKey();
    }
    }
    }

      以上是我的总结,欢迎各位园友与我交流,谢谢!

  • 相关阅读:
    C++操作文件行(读取,删除,修改指定行)
    Windows注册表中修改UAC(用户账号控制)及批处理脚本
    Centos7.x 安装libevent2.x
    【Docker】:使用docker安装redis,挂载外部配置和数据
    【Docker】:使用docker安装mysql,挂载外部配置和数据
    开源定时任务框架Quartz(二)
    开源定时任务框架Quartz(一)
    Spring Boot系列教程十四:Spring boot同时支持HTTP和HTTPS
    数据结构与算法:单向链表实现与封装(有头)
    【C++札记】指针函数与函数指针
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2207965.html
Copyright © 2011-2022 走看看