特殊集合:队列、栈

一、栈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#基础整理(特殊集合和哈希表)的更多相关文章

  1. 集合>哈希表类Hashtable和SortedList排序列表类

    集合>哈希表类Hashtable Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法. 集合>哈希表类Hashtable>构造普通哈希表 代码 ...

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

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

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

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

  4. Stack集合 Queue队列集合 Hashtable哈希表

    Stack集合 干草堆集合 栈集合 栈;stack,先进后出,一个一个赋值,一个一个取值,安装顺序来. 属性和方法 实例化 初始化 Stack st = new Stack(); 添加元素 个数 Co ...

  5. Java List集合和哈希表

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

  6. 10、C#基础整理(集合)

    集合 1.集合的引用 using System.Collections;//添加类 2.定义集合(ArrayList 或 Array) ArrayList arr = new ArrayList(); ...

  7. 黑马程序员_java基础笔记(06)...集合

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— JavaApi(其实就是java给我们提供的已经定义好的对象.工具对象:集合框架) ...

  8. JAVA基础整理-集合篇(一)

    集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...

  9. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

随机推荐

  1. Populating Next Right Pointers in Each Node [LeetCode]

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  2. 集成 WeChat SDK - 支付篇

    作者感言 惯例, 开头都是要说些东西的了, 随着现在的App越来越商业化, 很多公司的App都会集成第三方的支付SDK, 这样子的成本就比较低, 但是呢, 有很多朋友还是不太会集成, 也不太爱看集成文 ...

  3. hdu5879 Cure

    题目链接:hdu5879 Cure 题解:用字符串输入.n很大时答案趋近与(π^2)/6. #include<cstdio> #include<algorithm> #incl ...

  4. Jquery操作select小结

    每次操作select都要查资料,干脆总结一下. 为select设置placeholder <select class="form-control selOP" placeho ...

  5. B’QConf(北京软件质量大会)记

    下午从公司加班回来,顺路到淘宝(大望路)参加B'QConf(北京软件质量大会).淘宝所在的国家广告产业园原来是一个菜市场,已经有大约6年没有到那一带活动了.之所以记得这么清楚,是因为6年前曾经从那里的 ...

  6. C#启动一个外部程序(1)-WinExec

    C#启动一个外部程序(1)-WinExec 调用Win32 API.1. using System.Runtime.InteropServices; 2. //        //#define SW ...

  7. HDU 1394 树状数组求逆序对

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  8. Python背景色与语法高亮主题配置

    使用python idle的人恐怕都无法忍受默认的白色背景,及其语法高亮主题. 大家更倾向于使用黑色背景. 用户目录 的.idlerc 目录: 下面的各个系统下对应的该文件的位置: 在Linux系列系 ...

  9. ASP.NET MVC 基于角色的权限控制系统的示例教程

    上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...

  10. nginx初识