特殊集合一:stack集合--堆集合

1、定义:堆集合是集合中一种特殊的类,在Stack中也有许多方法和属性,下面一一列举:

命名格式:Stack ss=new Stack();

2、如何添加数据:push(),推,将需要的数据依次输入,一个推一个,进入Stack集合里;

ss.Push("i");在添加时,括号中需要加双引号,无论是int型还是string型;

3、如何读取数据:

运用foreach循环:

foreach(string s in ss)//foreach根据集合构造,依次获取数据

{

Console.Write(s);

}

4、在Stack集合里没有索引;

Console.WriteLine(ss[0]);写中括号是不行的,堆集合没有索引。

5、属性:统计元素个数

Console.WriteLine(ss.Count);//count属性,获取元素个数

6、弹出移除数据

7、弹出不移除数据

string tanchu = ss.Peek().ToString();//只获取最后进去的那个数据值,不移除

8、清空集合

ss.Clear();

9、复制集合

ss.Clone();

只能一个一个弹出,没有索引;

特殊集合二、Queue--队列集合

1、定义:queue,排队,列队;

2、如何赋值:一个一个赋值

3、count属性,计算元素的个数

4、读取第一个元素,并从集合移除

5、读取第一个元素,不移除(仍存在集合中)

6、Contain(包含),判断是否包含某个元素,返回布尔值

特殊集合三、HashTable--哈希表集合

1、定义://哈希表集合,一个位置包含两个值,一个key,一个values;

Hashtable ht = new Hashtable();

2、如何赋值:需要自己加索引,加键,在读哈希表时,键值和value值要分开读;//不像数组中带有索引

ht.Add(0, "王超");

ht.Add(1, "范范");

ht.Add(2, "濛哥");

ht.Add(3, "雷子");

ht.Add(4, "丽丽");

ht.Add(5, "祥祥");

ht.Add(6, "孙琪");

3、  如何取值:

foreach (int i in ht.Keys)

{

Console.WriteLine(i);//keys代表键的一个集合,读出的是倒着读出来,先进后出

}

foreach (string s in ht.Values)

{

Console.WriteLine(s);//values代表value的一个集合

}

Console.ReadLine();

4、Contains (包含)判断是否包含某个键

Console.WriteLine( ht.Contains(4));//判断是否包含某个键

5、count属性,统计个数

格式:int geshu = ht.Count;

Console.WriteLine(geshu );

6、清空数据

ht.Clear();

7、移除数据

//remove移除,移除的是键的元素

// ht.Remove(4);//按照括号内的key值,移除key值和value

8、 没有索引,不能重复添加key;例:  ht.Add(4, "丽丽");//键值(相当于索引),不能重复添加key;

9、  枚举类型:如何将key值和value值一块输出

IDictionaryEnumerator ide = ht.GetEnumerator();

while (ide.MoveNext())//返回bool值

{

Console.WriteLine(ide.Key+" "+ide.Value);

}

Console.ReadLine();

结语:指针问题

Stack:出口即入口,倒着走,先进后出

Queue:先进先出,

Hashtable:先进后出,入口即出口,movenext:下移

下图比较直观的反映出“先进后出”:

10-23C#基础--特殊集合(stack、queue、hashtable)的更多相关文章

  1. 特殊集合 Stack Queue Hashtable

    //Stack    干草堆集合    栈集合      先进后出 Stack st = new Stack(); //实例化 初始化 st.Push(2); //添加元素 st.Push(6); s ...

  2. 集合、ArrayList 集合。Stack集合。Queue集合。以及Hashtable集合

    arrayList 首先复制Colections加  : 创建arrayList ar =new arrayList(); //ArrayList al=new ArrayList();        ...

  3. Stack集合、queue集合、hashtable集合

    1.栈:Stack,先进后出,一个一个赋值,一个一个取值,按顺序. .count           取集合内元素的个数 .push()         将元素一个一个推入集合中//stack集合存入 ...

  4. 数据结构设计 Stack Queue

    之前在简书上初步总结过几个有关栈和队列的数据结构设计的题目.http://www.jianshu.com/p/d43f93661631 1.线性数据结构 Array Stack Queue Hash ...

  5. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  6. 10. Scala数据结构(上)-集合操作

    10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:s ...

  7. C#中集合ArrayList与Hashtable的使用

    C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...

  8. STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map

      list vector deque stack queue priority_queue set [unordered_set] map [unordered_map] multimap [uno ...

  9. Windows 10开发基础——文件、文件夹和库(一)

    原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...

  10. Stack&&Queue

    特殊的容器:容器适配器 stack     queue     priority_queue:vector+堆算法---->优先级队列 stack:     1.栈的概念:特殊的线性结构,只允许 ...

随机推荐

  1. Visual Studio中用于ASP.NET Web项目的Web服务器

    当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们. 利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Expr ...

  2. 修改SpringBoot 默认的小叶子图标

    Springboot 项目,在浏览器中访问时,浏览器上导航栏的图标是一片绿色的叶子,我们可以修改它. 将格式为.ico的图片放入以下任一项目文件夹即可.但,图片命名必须为favicon.ico 1.类 ...

  3. Spring初学之bean的生命周期

    实体Bean: Car.java: package spring.beans.cycle; public class Car { private String name; private int pr ...

  4. Python之print语句Python的注释

    话不多说直接切入正题 print语句可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print 'hello, world' 注意: 1. ...

  5. python之算法LOB三人组

    一.冒泡排序 a.冒泡排序----优化 如果冒泡排序中执行一趟而没有交换,则列表已经是有序状态,可以直接结算法 import random from timewrap import * @cal_ti ...

  6. python读取.mat文件的数据

    首先导入scipy的包 from scipy.io import loadmat 然后读取 m = loadmat("F:/__identity/activity/论文/data/D001. ...

  7. java常用封装方法

    public Map<String,String> getDateByStr(String str,String startDate,String endTime){ Map<Str ...

  8. oralce 索引(2)

    B-Tree 索引 本文来自网上整理 来自以下博客内容 http://www.360doc.com/content/13/0712/11/13136648_299364992.shtml; http: ...

  9. 关于js序列化时间的方法

    var time = new Date(); var otime = getMyDate(time); //将毫秒转换成 年月日+时分秒 格式的 (1970-01-11 00:00:00) funct ...

  10. 22 Python 模块与包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...