HashTable初次体验
用惯了数组、ArryList,初次接触到HashTable、Dictionary这种字典储存对于我来说简直就是高大上。
1.到底什么是HashTable
HashTable就是哈希表,和数组一样,是一种数据储存的方式,但是相对于数组,HashTable属于乱序储存,不会按照输入的顺序进行储存。详情可以参阅MSDN关于HashTable的叙述。
对于HashTable和常用数组的区别,可以在园子里边搜索。
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。
Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
2.HashTable怎么用?
在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素:HashtableObject.Clear();
判断哈希表是否包含特定键key:HashtableObject.Contains(key);
//使用前需要先new一个hashtable
HashTable hashtable=new HashTable();
//添加一个元素(key+value)
hashtable.Add("国家","省份");
hashtable。Add("省","市");
//移除一个元素
hashtabl.Remove("省");
//清空
hashtable.Clear();
3.举个栗子
输入一句或一段英文,计算出每个字符出现的次数。(利用hashtable)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; namespace hashtable
{
class Program
{
static void Main(string[] args)
{
//新建一个hashtable
Hashtable ht = new Hashtable();
Console.WriteLine("Input:");
//获取输入的字符串
string str=Console.ReadLine();
int temp = str.Length;//临时储存输入字符串的长度
char[] sToc=new char[temp];
//将输入的字符串转存为字符数组
sToc = str.ToCharArray();
int j = ;
for (int i = ; i < temp;i++ )
{
int x = ;//用于记录每个字符出现的次数
char c = sToc[i];
for (int y = i; y < temp; y++)
{
if (c == sToc[y])
x++;
}
//判定hashtable中是否已经包含该键值?Y:next,N:将该键值储存到hashtable中
if (!ht.ContainsKey(c))
{
ht.Add(c, x);
}
}
//遍历所有键值,输出
foreach (char strr in ht.Keys)
{
Console.WriteLine(strr+":"+ht[strr]);
}
Console.ReadKey();
}
}
}
代码写的有点匆忙,没有进行过多测试,如有不足,还请各位指正。
测试截图:

HashTable初次体验的更多相关文章
- ASP.NET Core Identity Hands On(1)——Identity 初次体验
ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格.登录和用户数据存储 这是来自于 ASP.NET Core Identity 仓 ...
- 在docker中初次体验.net core 2.0
.net core的跨平台有了Linux,不能没有docker……网上的系列文章一大推,特别是docker还有了中文官网:https://www.docker-cn.com/ .上面说的很清楚了,这里 ...
- Visual Studio 2017 初次体验
在初次体验中遇到以下问题以及技巧 1. 在出现红色波浪线时为出现错误语法,将鼠标移动到相应位置可以获得相关错误信息 2.在编写代码过程中,行号上出现的小黄灯可以有提示信息 3.List 与 Array ...
- kubebuilder实战之二:初次体验kubebuilder
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Total Commander的初次体验
从汉化新世纪下载到最新的TC张学思版后,运行文件只需依照其提示就可以完成该软件的安装.作为新手初次运行体验了以下功能: 一.目录跳转 1. 初次启动TC软件界面截图: 2. 按下Ctrl+d后,直接再 ...
- 初次体验百度eCharts遇到的问题和解决方法
前言 上周在厌烦Highchart下,体验了下百度的eCharts,支持IE6.7.8+外,对数据在线编辑还有工具栏支持,体验时遇到了几个小问题,最近两天在尝试得到了一个解决方法. Tooltip时单 ...
- Thrift 个人实战--初次体验Thrift
前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的rpc框架服务端/客户端代码. 不过Thrift的实现, 简单使用离实际生产环境还 ...
- 基于winserver部署Apollo初次体验(附.net客户端demo)
前言 配置中心伴随着这几年分布式系统演变和微服务架构的兴起,已经成为必不可少的需求之一.试下一下如果哪天公司的所有应用服务,从公司服务器迁移到云服务,成千上万的配置,修改起来是多么耗时费劲的事(我们公 ...
- 在ubuntu16.04中初次体验.net core 2.0
.net core运行在Linux中的例子.文章已经很多了,看了一些之后也想体验一下,顺便记录一下…… 环境:win10 1709.它内置的Linux子系统(这里安装的是Ubuntu 16.04) 一 ...
随机推荐
- shell 1>&2 2>&1 &>filename重定向的含义和区别
当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程 ...
- C#相关开发视频
Quickly Generate C# Classes from JSON Responses .NET Compiler Platform ("Roslyn") for the ...
- get方式和set方式提交时乱码
request.setChracterEncoding("utf-8");只对form表单的post提交方式有效. 当使用get提交的时候:
- 启用SQLite的Data Provider 运行WECOMPANYSITE时遇到ERROR CREATING CONTEXT 'SPRING.ROOT': ERROR THROWN BY A DEPENDENCY OF OBJECT 'SYSTEM.DATA.SQLITE'
从网上下载的源码WeCompanySite,运行时报错 Error creating context 'spring.root': Error thrown by a dependency of ob ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
- JS组件系列——BootstrapTable 行内编辑解决方案:x-editable
前言:之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件 ...
- EntityFramework之监听者判断SQL性能指标
前言 当我们利用EF这个ORM框架时,我们可能会利用LINQ或者原生的SQL语句来进行数据操作,此时我们无法确定我们的代码是否会给数据库带来一定的负载,当给数据库带来一定的压力时,由于项目中对数据进行 ...
- .NET Mvc中ViewBag、ViewData、TempData如何使用
ViewBag 获取动态视图数据字典 作用:给视图传递数据,不需要转换类型,由系统动态解析,比ViewData执行性能要差 ViewData 获取或设置视图数据的字典 给视图传递数 ...
- 【BZOJ 3876】【AHOI 2014】支线剧情
http://www.lydsy.com/JudgeOnline/problem.php?id=3876 这道题每条支线的意思是每条边... 那么每条边的下界设为1就行了. 这样建出一个DAG,每条边 ...
- Android Studio如何减小APK体积
最近在用AndroidStudio开发一个小计算器,代码加起来还不到200行.但是遇到一个问题,导出的APK文件大小竟然达到了1034K.这不科学,于是就自己动手精简APK.下面我们大家一起学习怎么缩 ...