C# 哈希表(Hashtable)用法笔记
一、什么是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)用法笔记的更多相关文章
- C#中哈希表(HashTable)的用法详解以及和Dictionary比较
1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...
- 转 C#中哈希表(HashTable)的用法详解
看了一遍有关哈希表的文字,作者总结的真是不错 .收藏起来 1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提 ...
- 哈希表(hashtable)的javascript简单实现
javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...
- 哈希表(Hashtable)简述
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- c/c++ 哈希表 hashtable
c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...
- Java中哈希表(Hashtable)是如何实现的
Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...
- C#中哈希表(HashTable)的用法详解
描述: 哈希表存放 key.values ,key值可以用于快速调取用,values 对应object类型,也就是说所有类型. 实例: 1.HashTable存放学生的成绩 Hashtable ht1 ...
- C# 哈希表HashTable的简单使用
本人C#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...
- [PHP] PHP数组的实现哈希表(HashTable)结构
PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...
- java——哈希表 HashTable
在一个类中重写hashCode()和equals() package Date_pacage.hash; public class Student { private int grade; priva ...
随机推荐
- 第 9 章 MySQL数据库Schema设计的性能优化
前言: 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区.真正影响性能最大的部分是在设计中就已经产生了的,后期的优化很多时候所能够带来的改善都只 ...
- Javascript & JQuery读书笔记
Hi All, 分享一下我学JS & JQuery的读书笔记: JS的3个不足:复杂的文档对象模型(DOM),不一致的浏览器的实现和便捷的开发,调试工具的缺乏. Jquery的选择器 a. 基 ...
- 用scikit-learn学习LDA主题模型
在LDA模型原理篇我们总结了LDA主题模型的原理,这里我们就从应用的角度来使用scikit-learn来学习LDA主题模型.除了scikit-learn, 还有spark MLlib和gensim库 ...
- elasticsearch 不能通过9200端口访问
修改配置文件 config/elasticsearch.yml network.host: 0.0.0.0
- 谷歌安装器扫描时提示“需要root权限”,不用root也可以的!
能FQ的用户会用谷歌服务,一般的新手机没有安装谷歌框架,但是在用谷歌安装器安装谷歌市场时会提示"需要root权限",我用的是360手机,按照下面的教程搞好了: 安装完GSM包就可以 ...
- hdu3715
hdu3715 题意 给出一个递归的伪代码,当 x[a[dep]] + x[b[dep]] != c[dep],就向下递归,给出a,b,c数组的值 问 dep 最大多少.其中 0 <= c[i] ...
- WEB前端:浏览器(IE+Chrome+Firefox)常见兼容问题处理--02
兼容问题目录 8.IE6不支持固定定位 9.IE6下前面元素浮动,后面元素不浮动后他们之间会有间隙 10.IE6下双边距问题 11.IE67下父级有边框,子级有margin的话会不起作用 12.IE6 ...
- unity3D:游戏分解之曲线
一提到曲线,很多新手就头疼了,包括我.查了很多资料,终于有个大概的了解.想深入了解曲线原理的,推荐一个链接http://www.cnblogs.com/jay-dong/archive/2012/09 ...
- CPU-Z五大主要功能及使用方法初步了解
CPU-Z这款软件除了具有查看CPU温度这个功能之外,还有很多其他的功能.今天就和小编一起去看看CPU-Z的5大功能以及他们的使用方法吧! CPU信息标签页 CPU-Z介绍: CPU-Z是一款著名的免 ...
- php的数据访问和封装运用
php数据访问: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...