• HashTable的使用(转)


    一、Hashtable概述

    Hashtable集合中的元素以Key/Value方式存在。Key用来快速查找;Value用于存储对应于Key的值。值得注意的是Key和Value均为object类型。

    二、对Hashtable操作
       对Hashtable操作包括:

       1)添加集合元素
       2)检索集合元素
       3)遍历
       4)排序集合元素
       5)修改集合元素
       6)删除集合元素

    以下简单的控制台程序实现上述操作(C#)

    namespace hashtableOp
    {
        
    using System;
        
    using System.Collections;    
        
        
    class sample
        {
            

            
    static void Main(string[] args)
            {
                
                
    // 创建Hashtable集合
                Hashtable ht =new Hashtable();
                
                
    // 向集合中添加 key/value 对
                ht.Add("1""apple");
                ht.Add(
    "2""orange");
                ht.Add(
    "3","strawberry");
                ht.Add(
    "0","fruit");

                
    // 通过 key 找到 value
                Console.WriteLine("通过 key 找到 value");
                
    string v=(string)ht["1"];
                Console.WriteLine(v);

                
    // 遍历集合
                Console.WriteLine("\n遍历集合");
                
    foreach( DictionaryEntry de in ht)
                    Console.WriteLine(
    "Key=\"{0}\"\tValue=\"{1}\"",de.Key.ToString(), de.Value.ToString());
                
                
    // 对集合进行排序
                Console.WriteLine("\n对集合进行排序");
                ArrayList aKeys
    =new ArrayList(ht.Keys);
                aKeys.Sort();
                
    foreach(string key in aKeys)
                    Console.WriteLine(
    "Key=\"{0}\"\tValue=\"{1}\"",key, ht[key].ToString());

                
    // 修改指定 key 的 value
                ht["0"]="Animal";
                ht[
    "1"]="Monkey";
                ht[
    "2"]="Horse";
                ht[
    "3"]="Donkey";
                Console.WriteLine(
    "\n遍历修改后集合");
                
    foreach( DictionaryEntry de in ht)
                    Console.WriteLine(
    "Key=\"{0}\"\tValue=\"{1}\"",de.Key.ToString(), de.Value.ToString());

                
    // 删除集合元素
                ht.Remove("2");
                ht.Remove(
    "1");
                Console.WriteLine(
    "\n遍历删除元素后集合");
                
    foreach( DictionaryEntry de in ht)
                    Console.WriteLine(
    "Key=\"{0}\"\tValue=\"{1}\"",de.Key.ToString(), de.Value.ToString());

                
    // 删除所以集合元素
                ht.Clear();
            }
        }
    }


    一、集合基本概念

    在程序中,常用集合(Collection)来组织那些数量不定而且不需要明确表达前驱后继关系的元素(Element)。可以一个比喻来描述集合:集合类似一个袋子(Bag),这个袋子用来装物品(集合元素),装入袋子的物品是没有次序的。按正规术语所描述的集合的核心意思与前面那个比喻所表达意思是一样的。集合是一个容器(Container)对象,用来存储集合元素(Element)。此外集合还提供存取、检索、遍历集合元素的各种方法。

    一般来说,集合所提供的对集合元素的操作有以下几个:

    1)Add 向集合容器中添加一个元素;
    2)Remove 从集合容器中删除一个元素;
    3)Clear 将集合容器中的元素清空;
    4)从集合容器中检索特定集合元素。可以根据集合元素的键(key)或者集合元素的下标号(确切地说是Index)检索集合元素;
    5)遍历集合元素。遍历就是快速地检视集合容器中所有集合元素。

    二、 HashTable

    HashTable是一个集合容器,这个容器中的集合元素有点特别,一个集合元素由两个对象构成:一个对象是key;另一个对象是Value,构成所谓的 Key/Value 对。按MSDN的定义,HashTable中的元素类型是 DictionaryEntry 类型。DictionaryEntry 是一个具有 Key/Value 对的对象类型。

    Key 用来快速查找(检索)HashTable 集合元素;而Value 用来存放用户的数据。

  • 相关阅读:
    5W1H聊开源之What——开源协议有哪些?
    5W1H聊开源之What——开源是什么?
    测试开发专题-开篇
    痞子衡嵌入式:在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺
    痞子衡嵌入式:以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程
    痞子衡嵌入式:超级下载算法RT-UFL v1.0发布,附J-Link下安装教程
    《痞子衡嵌入式半月刊》 第 34 期
    痞子衡嵌入式:Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)
    痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记番外(1)
    痞子衡嵌入式:嵌入式里串口(UART)自动波特率识别程序设计与实现(轮询)
  • 原文地址:https://www.cnblogs.com/VirtualMJ/p/674590.html
Copyright © 2020-2023  润新知