.net中哈希表的使用 Hashtable
//创建哈希表 Hashtable to store cached parameters
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
...
//缓存数据
string cacheKey = "xxxx"
SqlParameter[] commandParameters= xxx;
parmCache[cacheKey] = commandParameters;
...
//获取数据
string cacheKey = "xxxx"
cachedParms = (SqlParameter[])parmCache[cacheKey];
其他关于哈希表的介绍:
一 哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.
二 哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //创建一个Hashtable实例
ht.Add("E","e");//添加key/value键值对
ht.Add("A","a");
ht.Add("C","c");
ht.Add("B","b");
string s=(string)ht["A"];
if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/value键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
}
}
三 遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}
四 对哈希表进行排序
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
for(string skey in akeys)
{
Console.Write(skey + ":");
Console.WriteLine(ht[skey]);//排序后输出
}
转载于:https://www.cnblogs.com/gsk99/archive/2011/08/28/2155988.html
.net中哈希表的使用 Hashtable相关推荐
- c ++中哈希表如何访问_C / C ++中的哈希表–完整的实现
c ++中哈希表如何访问 A Hash Table in C/C++ (Associative array) is a data structure that maps keys to values. ...
- 在java中哈希表判断某个元素是否存在的原理
在java中哈希表判断某个元素是否存在的原理 在本文中我们将介绍,在hash表中如何判断两个元素是否重复. 首先,我们们需要知么hash表是什么? Hash表由称为离散表,是由数组加链表实现的一种数据 ...
- JAVA中哈希表的使用-遍历map集合
java中哈希表的使用第二例-即将罗马数字转换为整数 代码: class Solution { public int romanToInt(String s) { HashMap<Charact ...
- java hashtable排序_java中哈希表中有迭代器模式的实现,可以认为其是顺序表吗?...
先上答案:HashTable (哈希表)不是顺序表. 分析如下: 要搞清楚这个问题需要明确两个问题: 1. 什么是顺序表 2. 哈希表的数据结构 先说什么是顺序表.WIKI的解释是:顺序表是在计算机内 ...
- C#中哈希表(HashTable)的用法详解
1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...
- C++ STL中哈希表 hash_map介绍
0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能.例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华 ...
- java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?
时代总是在不断的变化发展的,高新技术的应用也越来越普遍,大家对于新知识的渴望越来越强烈.java中很多的基础知识都是非常重要的.一起来看看关于HashMap的知识吧. 一. HashMap概述: Ha ...
- 在java中 哈希表会经常出现哈希碰撞吗
在Java中,哈希表可能会经常出现哈希碰撞.哈希表是一种根据键(Key)来访问值(Value)的数据结构,通过哈希函数将键映射到哈希表的索引位置上.由于哈希函数的映射结果可能不唯一,不同的键可能会被映 ...
- python中哈希表和set的使用
哈希表不能将可变对象作为key值,即引用类型的内容不能是可变的,这样不安全,因为hashcode函数是根据对象的内容计算出key和value的位置,如果引用的内容可变,那么每次查找的位置结果都不一样, ...
- 哈希表原理,Hashtable(Hushmap)原理
哈希表 Hash table 散列表 特点 接近O(1)的查找效率 根据键(key 关键值)而直接访问在内存存储位置 本质上是一个数组,数组里面存的链表 原理和例子 原始数据(key 关键值) -- ...
最新文章
- MySQL 5.6中如何定位DDL被阻塞的问题
- PHP验证邮箱地址代码
- 理论+技术+代码已经准备完毕!2021年啃透花书!
- mactex中文配置
- 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
- 网页弹出窗口代码【来源于网络】
- Android 网络状态的监控
- 【项目合作】移动端人体姿态估计
- python工作流程_讨论 - 廖雪峰的官方网站
- vue 大概流程(未完)
- php barcode设置黑条宽度,JsBarcode常用参数设置
- 二级域名分发系统源码
- 抽象代数学习 阿贝尔群
- DELL灵越笔记本插上耳机后,只有外放耳机无声音的解决方法。
- 谁是全球芯片行业的“麒麟才子”?得之可得天下!
- 【钉钉-场景化能力包】CRM销售系统集成
- 俞敏洪在新东方年会发表演讲:2019,再次出发
- SMM--Spring
- ubuntu 18.04 局域网无法访问内部DNS的解决办法
- Qt 快速入门系列教程