特殊集合一: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. apache实现http自动转为https

    1.确认此服务器apache已经配置过证书可以用https访问到 2.确认/etc/apache2/ports.conf 下有 Listen 80Listen 443(此条) 3.配置虚礼主机定将域名 ...

  2. Linux嵌入式 -- 内核 - 内核定时器

    1.  度量时间差 时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数,可配置(50-1200),在X86平台,默认值为1000(每 ...

  3. 爬虫第三篇:requests模块

    requests模块其实就是对urllib.request模块的进步一不优化,提供了很多可选的参数,同时简化了操作.下面我还是贴上具体操作的代码. requests GET请求 GET请求html文件 ...

  4. The import javax.servlet.jsp.JspWriter cannot be resolved' error

    Add servlet-api.jar and jsp-api.jar from Tomcat 6.0 library to ecipse project.

  5. 高性能Js—数据存取

    数据存取 JavaScript中四中基本的数据存取位置 字面量:不存于某个变量内 本地变量:var定义的 数组元素 对象成员 字面量.全局变量读取速度 > 数组项.对象成员 .因为局部变量存在于 ...

  6. 解决Navicat连接mysql报错:1862 - Your password has expired. To log in you must change it using a client that supports expired passwords.

    今天尝试用Navicat连接mysql时,发现一个1862的报错问题: 后来参照这篇文章https://blog.csdn.net/u010513756/article/details/5073501 ...

  7. 团队小组NABCD(通用作业和个人作业)特点

    NABCD框架(通用作业和个人作业): N(need,需求): 你的创意解决了用户的什么需求? 使用户能够很好的区分作业情况,将班里所有同学的作业和自己私人的作业分开,通用作业指在一个班一同上课的公共 ...

  8. deep learning (六)logistic(逻辑斯蒂)回归中L2范数的应用

    zaish上一节讲了线性回归中L2范数的应用,这里继续logistic回归L2范数的应用. 先说一下问题:有一堆二维数据点,这些点的标记有的是1,有的是0.我们的任务就是制作一个分界面区分出来这些点. ...

  9. Python&&ipython安装注意事项

    yum源里没有,需要先安装一个epel-release这个包,它提供的yum源里有,然后在yum install python-pip.ftp://ftp.muug.mb.ca/mirror/cent ...

  10. Leetcode 970. Powerful Integers

    Brute Force(暴力) class Solution(object): def powerfulIntegers(self, x, y, bound): """ ...