11、C#基础整理(特殊集合和哈希表)
特殊集合:队列、栈
一、栈Stack类:先进后出,没有索引
Stack ss = new Stack();
1、增加数据:push :将元素推入集合
ss.Push();
ss.Push();
ss.Push();
2、获取数据:
(1)peek返回位于stack顶部的对象但不移除(获取最后一个进入的元素的值)
Console.WriteLine(ss.Peek());//
(2)pop将元素一个个弹出集合(读取并移除)
Console.WriteLine(ss.Pop());//
Console.WriteLine(ss.Pop());//
3、其他操作
ToArray:返回数组类型,将栈中的元素转换成集合,然后放到数组里
object[] shuzu = (object[])ss.ToArray();
foreach(object a in shuzu)
{
Console.WriteLine(a);
}
二、队列Queue类:先进先出
1、定义方法:
Queue q = new Queue();
2、增加:
(1)Enqueue将元素放到队列末尾
q.Enqueue();
q.Enqueue();
q.Enqueue();
(2)Peek:返回开始处的对象但不移除
Console.WriteLine("Peek:"+q.Peek());//
3、获取:Dequeue移除并返回位于队列开始处的对象
Console.WriteLine("Dequeue:"+q.Dequeue());
哈希表Hashtable类
以键值成对读取数据,可以自己设置索引
Hashtable ht = new Hashtable();
ht.Add("a", "zhangsan");//一个任意类型的key + 一个任意类型的value值
ht.Add("b", "lisi");
ht.Add("c", "wangwu");
打印哈希表中元素个数的方法:
ICollection htkeys = ht.Keys;
Console.WriteLine(htkeys.Count);
读取key值
//copyto---复制到一个数组中
string[] ss1 = new string[];
htkeys.CopyTo(ss1,);
读取value值
ICollection htvalues = ht.Values;
string[] ss2 = new string[];
htvalues.CopyTo(ss2,);
成对读取:key和value都需要重新定义
IDictionaryEnumerator id = ht.GetEnumerator();
//object key1=id.Key;//获取一个值
//object value1 = id.Value;
//id.MoveNext();//往下移一个元素,返回布尔值,如果为false就不能再移动了
while(id.MoveNext())
{
object key2=id.Key;
Console.WriteLine(key2.ToString());
object value2 = id.Value;
Console.WriteLine(value2.ToString());
}
ht.Remove("b"); —— 根据键值移除该键
11、C#基础整理(特殊集合和哈希表)的更多相关文章
- 集合>哈希表类Hashtable和SortedList排序列表类
集合>哈希表类Hashtable Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法. 集合>哈希表类Hashtable>构造普通哈希表 代码 ...
- Python 字典和集合基于哈希表实现
哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组 ...
- C#部分---特殊集合:stack栈集合、queue队列集合、哈希表集合。
1.stack栈集合:又名 干草堆集合 栈集合 特点:(1)一个一个赋值 一个一个取值(2)先进后出实例化 初始化 Stack st = new Stack(); //添加元素用push st.Pus ...
- Stack集合 Queue队列集合 Hashtable哈希表
Stack集合 干草堆集合 栈集合 栈;stack,先进后出,一个一个赋值,一个一个取值,安装顺序来. 属性和方法 实例化 初始化 Stack st = new Stack(); 添加元素 个数 Co ...
- Java List集合和哈希表
List集合和Set集合,先来看List集合. List集合存储元素的特点: 1.有序(List集合中的元素有下标):存进去是什么样,取出来还是什么样 2.可重复 可以结合以下的简单代码来看一看. i ...
- 10、C#基础整理(集合)
集合 1.集合的引用 using System.Collections;//添加类 2.定义集合(ArrayList 或 Array) ArrayList arr = new ArrayList(); ...
- 黑马程序员_java基础笔记(06)...集合
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— JavaApi(其实就是java给我们提供的已经定义好的对象.工具对象:集合框架) ...
- JAVA基础整理-集合篇(一)
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...
- 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法
这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...
随机推荐
- jquery UI datepicker时间控件的使用
参考: http://api.jqueryui.com/datepicker/#method-show 英文 http://www.helloweba.com/view-blog-168.html 中 ...
- UserAgent:通过浏览器获取用户浏览器等信息
User Agent的含义 User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏 ...
- JSP中,当页面为404或者500时。设置跳转到错误提示页面
最好的就是在WEB.XML文件中配置错误代码的跳转页面,首先建立个 出现500错误的页面,提示出错了,然后再WEB.XML文件中配置,配置如下 一. 通过错误码来配置error-page <er ...
- 跨服务器导入数据SQL语句及其问题解决方案
--跨服务器导入数据SQL语句: insert into [shsw_manager].[dbo].[Station_List]select * from OPENROWSET('SQLOLEDB', ...
- bzoj 1877: [SDOI2009]晨跑
#include<cstdio> #include<iostream> #include<cstring> #define M 6009 #define inf 2 ...
- hdu 4611 Balls Rearrangement
http://acm.hdu.edu.cn/showproblem.php?pid=4611 从A中向B中移动和从B中向A中移动的效果是一样的,我们假设从B中向A中移动 而且A>B 我们先求出所 ...
- Achieving High Availability and Scalability - ARR and NLB
Achieving High Availability and Scalability: Microsoft Application Request Routing (ARR) for IIS 7.0 ...
- RM报表预览,只有固定的1个订单页面
明明选了多个记录,预览时,只显示最后一个. 原因: 主项数据的数据集选了报表自带的虚拟数据集了.
- C++-sizeof和strlen的区别
一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保 ...
- 支持.NET和移动设备的XLS读写控件XLSReadWriteII下载地址及介绍
原文来自龙博方案网http://www.fanganwang.com/product/3085转载请注明出处 读写任何单元值 数字型.字符型.布尔型以及错误型.但是你了解日期和时间型单元吗?在Exce ...