集合>哈希表类Hashtable

Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法。

集合>哈希表类Hashtable>构造普通哈希表

代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            //使用所有默认值构建哈希表实例            Hashtable ht = new Hashtable();            //指定哈希表实例的初始容量为20个元素            Hashtable ht1 = new Hashtable(20);            //指定初始容量为20个元素,加载因子为0.8的哈希表实例,加载因子大,哈希表自动扩展容量也大。            Hashtable ht2 = new Hashtable(20, 0.8f);            //实例化一个SortedList。            SortedList sl = new SortedList();            sl.Add("键一", "键值一");            sl.Add("键二", "键值二");            sl.Add("键三", "键值三");            //传入实现了IDictionary接口的参数创建哈希表。            Hashtable ht3 = new Hashtable(sl);        }    }}

集合>哈希表类Hashtable>获取哈希表值

代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace useHashtable{    class Program    {        static void Main(string[] args)        {            //初始化哈希表            Hashtable hl = new Hashtable();            //使用Add方法向哈希表添加元素。            hl.Add("键一", "键值一");            hl.Add("键二", "键值二");            hl.Add("键三", "键值三");            hl.Add("键四", "键值四");            hl.Add("键五", "键值五");            hl.Add("键六", "键值六");            hl.Add("键七", "键值七");            DisplayResult(hl);            Console.WriteLine("通过键获取键值:"+ hl["键一"]);            Console.WriteLine("移除哈希表中的元素");            hl.Remove("键二");            Console.WriteLine("哈希表中的元数总数是:" + hl.Count);            DisplayResult(hl);            Console.ReadLine();        }        static void DisplayResult(Hashtable tl)        {            foreach (DictionaryEntry de in tl)            {                 Console.WriteLine("哈希表中的键:{0},对应的值{1}",de.Key,de.Value);            }        }    }}

集合>哈希表类Hashtable>哈希表排序

代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace HashSort{    class Program    {        static void Main(string[] args)        {            Hashtable ht = new Hashtable();            ht.Add("key1", "this is value1");            ht.Add("key3", "this is vlaue3");            ht.Add("key2", "this is value2");            ht.Add("key4", "this is value4");            Console.WriteLine("排序前的哈希键值顺序为:");            foreach (DictionaryEntry de in ht)            {                 Console.WriteLine("键{0},值{1}", de.Key, de.Value);            }            ICollection keys = ht.Keys;            ArrayList al = new ArrayList(keys);            al.Sort();            Console.WriteLine("排序后的哈希键值顺序为:");            foreach (object key in al)            {                Console.WriteLine("键{0},值{1}", key, ht[key]);            }            Console.ReadLine();        }    }}

集合>哈希表类Hashtable>哈希表搜索

代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace HashtableSearch{    class Program    {        static void Main(string[] args)        {            Hashtable ht = new Hashtable();            ht.Add("key1", "this is value1");            ht.Add("key3", "this is vlaue3");            ht.Add("key2", "this is value2");            ht.Add("key4", "this is value4");                      ICollection keys = ht.Keys;            ArrayList al = new ArrayList(keys);            al.Sort();            //在这里使用ArrayList的BinarySearch搜索指定键值的值。            int searchResult = al.BinarySearch("key3");            if (searchResult > 0)            {                Console.WriteLine("搜索到的结果为:键{0},值{1}",al[searchResult],ht[al[searchResult]]);            }            else            {                Console.WriteLine("没有搜索到有效的结果值");            }            Console.ReadLine();        }    }}

集合>SortedList排序列表类

SortedList对象是可以排序的字典对象。与哈希表不同的是,SortedList内部的键是一个数组,值也是一个数组。这两个数组有初始容量,可自动扩充,SortedList根据键来排序,所键要实现IComparable接口。

集合>SortedList排序列表类>创建和操作

代码using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            //默认值构建            SortedList sl=new SortedList();            sl.Add("键1", "键值一");            sl.Add("键2", "键值二");            sl.Add("键3", "键值三");            sl.Add("键4", "键值四");            sl.Add("键5", "键值六");            sl.Add("键6", "键值七");            Console.WriteLine("排序字典的最初的初始化列表为:");            DisplayResult(sl);            sl.Remove("键5");            Console.WriteLine("键6的键值是:{0}", sl["键6"]);                        Console.ReadLine();        }        static void DisplayResult(SortedList sl)        {            foreach (DictionaryEntry de in sl)            {                Console.WriteLine("键:{0},键值为:{1}", de.Key, de.Value);            }        }    }}

集合>哈希表类Hashtable和SortedList排序列表类的更多相关文章

  1. 11、C#基础整理(特殊集合和哈希表)

    特殊集合:队列.栈 一.栈Stack类:先进后出,没有索引 Stack ss = new Stack(); 1.增加数据:push :将元素推入集合 ss.Push(); ss.Push(); ss. ...

  2. C# 哈希表(Hashtable)用法笔记

    一.什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对.它使用键来访问集合中的元素. 当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈 ...

  3. C#部分---特殊集合:stack栈集合、queue队列集合、哈希表集合。

    1.stack栈集合:又名 干草堆集合 栈集合 特点:(1)一个一个赋值 一个一个取值(2)先进后出实例化 初始化 Stack st = new Stack(); //添加元素用push st.Pus ...

  4. 数据结构是哈希表(hashTable)

    哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构.也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度.这个映射函数称为哈希函数(也称为散列函数),映射 ...

  5. Java List集合和哈希表

    List集合和Set集合,先来看List集合. List集合存储元素的特点: 1.有序(List集合中的元素有下标):存进去是什么样,取出来还是什么样 2.可重复 可以结合以下的简单代码来看一看. i ...

  6. java数据结构——哈希表(HashTable)

    哈希表提供了快速的插入操作和查找操作,每一个元素是一个key-value对,其基于数组来实现. 一.Java中HashMap与Hashtable的区别: HashMap可以接受null键值和值,而Ha ...

  7. js实现哈希表(HashTable)

    在算法中,尤其是有关数组的算法中,哈希表的使用可以很好的解决问题,所以这篇文章会记录一些有关js实现哈希表并给出解决实际问题的例子. 第一部分:相关知识点 属性的枚举: var person = { ...

  8. Python 字典和集合基于哈希表实现

    哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组 ...

  9. 第三十四篇 玩转数据结构——哈希表(HashTable)

    1.. 整型哈希函数的设计 小范围正整数直接使用 小范围负整数整体进行偏移 大整数,通常做法是"模一个素数"   2.. 浮点型哈希函数的设计 转成整型进行处理   3.. 字符串 ...

随机推荐

  1. Java历程-初学篇 Day08 数组

    一,什么是数组 所谓数组,是相同数据类型的元素按一定顺序排列的集合.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用 ...

  2. Python调用C# Com dll组件实战

    之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB.CBC.CFB.OFB,这四种用的是RijndaelManaged类),Python下Crypt ...

  3. 初识Hibernate之关联映射(二)

    上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多.本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单向一对一关联映射 基于主键的单向一对一关联映射 单 ...

  4. 2—sat

    模型的解决方法看论文<利用对称性解决2-SAT问题> HDU1814 :难度1.5 HDU1824: 难度 2 HDU1815: 难度3 HDU1816: 对于每两个人,二选一HDU181 ...

  5. EditPlus行首行尾批量添加字符 以及其它常用正则

    打开EditPlus,输入多行数据,快捷键ctrl+h 打开替换窗口,选择"正则表达式"替换 行首批量添加   查找"^" 替换为"我是行首aaa&q ...

  6. java优雅的使用elasticsearch api

    本文给出一种优雅的拼装elasticsearch查询的方式,可能会使得使用elasticsearch的方式变得优雅起来,使得代码结构很清晰易读. 建立elasticsearch连接部分请参看另一篇博客 ...

  7. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  8. java.security.InvalidKeyException: Illegal key size

    今天遇到一个奇怪的问题. 自己做的加签验签功能已经没有问题了,本地测试通过,同事放到服务器上测试也没问题. 然后我将包放到自己搭建的环境上,会报这样一个错误: java.security.Invali ...

  9. 简单爬虫-爬取免费代理ip

    环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import ...

  10. win10 uwp smms图床

    本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...