一、什么是Hashtable?

Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。

当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目

二、Hashtable 的属性

1、Count 获取 Hashtable 中包含的键值对个数。

2、IsFixedSize   获取一个值,表示 Hashtable 是否具有固定大小。

3、IsReadOnly    获取一个值,表示 Hashtable 是否只读。

4、Item  获取或设置与指定的键相关的值。

5、Keys  获取一个 ICollection,包含 Hashtable 中的键。

6、Values    获取一个 ICollection,包含 Hashtable 中的值。

三、Hashtable 的方法

在C#中使用需要引用

using System.Collections;

using System.Collections.Generic;

这两个命名空间

1、  public virtual void Add( object key, object value );

用途: 向 Hashtable 添加一个带有指定的键和值的元素。

2、public virtual void Clear();

用途:从 Hashtable 中移除所有的元素。

3、public virtual bool ContainsKey( object key );

用途:判断 Hashtable 是否包含指定的键。

4、public virtual bool ContainsValue( object value );

用途:判断 Hashtable 是否包含指定的值。

5、public virtual void Remove( object key );

用途:从 Hashtable 中移除带有指定的键的元素。

四、HashTable的应用场景

1、某些数据会被高频率查询

2、数据量很大

3、查询字段包含字符串类型

4、数据类型不唯一

五、HashTable简单用法实例

class Program

{

static void Main(string[] args)

{

// 创建一个Hashtable实例

Hashtable ht=new Hashtable();

// 添加keyvalue键值对

ht.Add("A","1");

ht.Add("B","2");

ht.Add("C","3");

ht.Add("D","4");

// 遍历哈希表只能用foreach来遍历,因为Hashtable不能用索引访问

//遍历key

foreach(Object item in ht.Keys)

{

Console.WriteLine((string)item);

}

//遍历value

foreach(Object item in ht.Value)

{

Console.WriteLine((string)item);

}

foreach (DictionaryEntry de in ht)

{

Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

}

// 哈希表排序

ArrayList akeys=new ArrayList(ht.Keys);

akeys.Sort();

foreach (string skey in akeys)

{

Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

}

// 判断哈希表是否包含特定键,其返回值为true或false

if (ht.Contains("A"))

Console.WriteLine(ht["A"]);

// 给对应的键赋值

ht["A"] ="你好";

// 移除一个keyvalue键值对

ht.Remove("C");

// 遍历哈希表

foreach (DictionaryEntry de in ht)

{

Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

}

// 移除所有元素

ht.Clear();

// 此处将不会有任何输出

Console.WriteLine(ht["A"]);

Console.ReadKey();

}

}

公众号:原文

C# 哈希表(Hashtable)用法笔记的更多相关文章

  1. C#中哈希表(HashTable)的用法详解以及和Dictionary比较

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

  2. 转 C#中哈希表(HashTable)的用法详解

    看了一遍有关哈希表的文字,作者总结的真是不错 .收藏起来 1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提 ...

  3. 哈希表(hashtable)的javascript简单实现

    javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...

  4. 哈希表(Hashtable)简述

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

  5. c/c++ 哈希表 hashtable

    c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...

  6. Java中哈希表(Hashtable)是如何实现的

    Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...

  7. C#中哈希表(HashTable)的用法详解

    描述: 哈希表存放 key.values ,key值可以用于快速调取用,values 对应object类型,也就是说所有类型. 实例: 1.HashTable存放学生的成绩 Hashtable ht1 ...

  8. C# 哈希表HashTable的简单使用

    本人C#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...

  9. [PHP] PHP数组的实现哈希表(HashTable)结构

    PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...

  10. java——哈希表 HashTable

    在一个类中重写hashCode()和equals() package Date_pacage.hash; public class Student { private int grade; priva ...

随机推荐

  1. 开涛spring3(6.3) - AOP 之 6.3 基于Schema的AOP

    6.3  基于Schema的AOP 基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面.切入点及声明通知. 在Spring配置文件中,所以AOP相关定义必须放在<a ...

  2. mac系统下给文件夹加密方法

    电脑里我们往往会有许多隐私的文件,不希望被别人看到,在过去的Windows电脑里,我们习惯性的会在文件夹中将该文件隐藏,但是这个隐藏是不安全的,遇到稍微会点电脑技术的人就可以给你解开,安全性不高,ma ...

  3. 给sftp创建新用户、默认打开和限制在某个目录

    一.环境: CentOS 6.8 使用 FileZilla 进行 sftp 连接 二.背景 给外包的工作人员提供我司服务器的某一目录的访问(包括读写)权限,方便他们部署代码文件. 之所以是某一目录的访 ...

  4. Lesser known dplyr tricks

    In this blog post I share some lesser-known (at least I believe they are) tricks that use mainly fun ...

  5. ES6解构赋值详解

    文章转载自:http://www.zhufengpeixun.cn/article/167 解构赋值(destructuring assignment)语法是一个 Javascript 表达式,这种语 ...

  6. Java经典编程题50道之十二

    企业发放的奖金根据利润提成:利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分 ,可提成7.5%:20万到40万之间 ...

  7. ABP入门系列(18)—— 使用领域服务

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写.特别是当遇到DDD中一些概念术语的 ...

  8. JavaSE教程-02Java基本语法

    1.注释 什么是注释 用于解释说明程序作用的文字 Java中注释分类格式 单行注释 格式: //注释文字 多行注释 格式: /* 注释文字 */ 文档注释 格式:/* 注释文字 / 2.关键字 什么是 ...

  9. CentOS6.8安装python2.7以及XX-Net

    xx-net在ubuntu上运行用起来很方便,如果有一些原因必须用CentOS,麻烦就比较大了. 首先需要升级python版本,CentOS自带的2.6版本是用不了的,必须升级到2.7以上,但是不能用 ...

  10. 浅谈卷积神经网络及matlab实现

    前言,好久不见,大家有没有想我啊.哈哈.今天我们来随便说说卷积神经网络. 1卷积神经网络的优点 卷积神经网络进行图像分类是深度学习关于图像处理的一个应用,卷积神经网络的优点是能够直接与图像像素进行卷积 ...