二、对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 用来存放用户的数据。

HashTable 使用相关推荐

  1. 【STL源码剖析读书笔记】【第5章】关联式容器之hashtable

    1.hashtable在插入.删除.搜寻操作上具有"常数平均时间"的表现,不依赖输入元素的随机性. 2.hashtable通过hashfunction将元素映射到不同的位置,但当不 ...

  2. HashMap 和 Hashtable 的 6 个区别,最后一个没几个人知道!

    HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的. 但你对这两者的区别了解有多少呢? 现在,栈长我给大家总结一下,或许有你不明 ...

  3. java 中的 Enumeration 在Vector,Hashtable和web中的应用

    public interface Enumeration<E> 实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个.连续调用 nextElement方法将返回一系列的 ...

  4. 在C#中应用哈希表(Hashtable)

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  5. 调试JDK源码-Hashtable实现原理以及线程安全的原因

    调试JDK源码-一步一步看HashMap怎么Hash和扩容 调试JDK源码-ConcurrentHashMap实现原理 调试JDK源码-HashSet实现原理 调试JDK源码-调试JDK源码-Hash ...

  6. C语言的HashTable简单实现

    原文地址:http://blog.csdn.net/zmxiangde_88/article/details/8025541 HashTable是在实际应用中很重要的一个结构,下面讨论一个简单的实现, ...

  7. HashTable原理与实现

    memcached中hashtable部分的源码,hash部分的源码主要分布在assoc.h/c.hash.h/c中,总得来说代码比较简单,这里就稍微介绍一下. hashtable通常包括哈希函数和解 ...

  8. JAVA - HashMap和HashTable

    1. HashMap 1)  hashmap的数据结构 Hashmap本质就是一个数组,只是当key值重复时,使用链表的方式来存储重复的key值(拉链法),注意:链表中存放的仍然是key值.如下图示: ...

  9. 一个古老的问题HashMap与Hashtable区别

    HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable.可能你觉得HashTable很好用,为什么不用呢? ...

  10. 面试之Hashtable和ConcurrentHashMap

    那么要如何保证HashMap的线程安全呢? 方法有很多,比如使用Hashtable或者Collections.synchronizedMap,但是这两位选手都有一个共同的问题:性能.因为不管是读还是写 ...

最新文章

  1. WCF:如何将net.tcp协议寄宿到IIS
  2. 平述factory reset ——从main system到重引导流程
  3. 关于USB的8个问题
  4. 使用 Tye 辅助开发 k8s 应用竟如此简单(五)
  5. 程序员永远的痛之字符编码的奥秘
  6. Python turtle库实现基本剖析
  7. 2016宁波计算机程序复赛,宁波第31届中小学生计算机程序设计竞赛复赛试题小学组.PDF...
  8. 标准C程序设计七---03
  9. 导入html文件到onenote,onenote怎么导入文件 onenote添加文件附件的图文步骤
  10. 第一章 python基础
  11. 抖音多闪数次声明被打脸 法院正式裁定抖音违规
  12. 追本溯源,回归根本:第一届区块链技术及应用峰会(BTA)·中国“区块链核心技术”分论坛预告大放送...
  13. gerrit 用法 topic
  14. Tivoli TSM产品功能详述
  15. win10内存占用率过高怎么办_win10磁盘占用和内存CPU占用率太高怎么办
  16. dell 730xd硬raid配置
  17. 【历史上的今天】5 月 12 日:第一台可编程机电子计算机诞生;硅谷先驱出生;饭否上线
  18. 今日头条开通,分享我爱的数码科技
  19. Matplotlib文字处理
  20. python byte和str转换

热门文章

  1. 录屏储存失败因为5823_为什么屏幕录制失败因为5823
  2. Web前端——移动端页面开发
  3. 【案例分享】项目施工进度报告 – 树形报表
  4. 【python办公自动化】如何在Excel表格里面插入对象
  5. 【对学习现状的总结和思考】
  6. Linux下Socket编程之TCP原理
  7. java开发对学位证_您需要软件学位才能成为成功的开发人员吗
  8. csdn入门测试教程------mysql数据库命令大全以及常用命令 安装教程 基础知识 附【练习题】
  9. MySQL的循环语句使用总结
  10. 搬运工-白嫖-docker