1.ArrayList类

ArrayList类主要用于对一个数组中的元素进行各种处理。在ArrayList中主要使用Add、Remove、RemoveAt、Insert四个方法对栈进行操作。Add方法用于将对象添加到ArrayList的结尾处;Remove方法用于从ArrayList中移除特定对象的第一个匹配项;RemoveAt方法用于移除ArrayList的指定索引处的元素;Insert方法用于将元素插入ArrayList的指定索引处。

示例将介绍如何创建一个ArrayList,如何添加项、移除项以用如何遍历ArrayList。程序代码如下:

  1. using System.Collections;//引入命名空间
  2. namespace _1
  3. {
  4. class ArrayListTest
  5. {
  6. static void Main(string[] args)
  7. {
  8. ArrayList arrlist = new ArrayList();//实例化一个ArrayList对象
  9. //使用Add方法向ArrayList中添加元素,将元素添加到ArrayList对象的末尾
  10. arrlist.Add("苹果");
  11. arrlist.Add("香蕉");
  12. arrlist.Add("葡萄");
  13. foreach (int n in new int[] { , , })
  14. {
  15. arrlist.Add(n);
  16. }
  17. //移除值为的第一个元素
  18. arrlist.Remove();
  19. //移除当前索引为的元素,即第个元素
  20. arrlist.RemoveAt();
  21. //在指定索引处添加一个元素
  22. arrlist.Insert(, "apple");
  23. //遍历ArrayList,并输出所有元素
  24. for (int i = ; i < arrlist.Count; i++)
  25. {
  26. Console.WriteLine(arrlist[i].ToString());
  27. }
  28. }
  29. }
  30. }

2.Stack类

Stack(堆栈)类主要实现了一个LIFO(Last In First Out,后进先出)的机制。元素从栈的顶部插入(入栈操作),也从堆的顶部移除(出栈操作)。在Stack中主要使用Push,Pop,Peek三个方法对栈进行操作。Push方法用于将对象插入Stack的顶部;Pop方法用于移除并返回位于Stack顶部的对象;Peek方法用于返回位于Stack顶部的对象但不将其移除。

示例将介绍如何创建一个Stack,如何添加项、移除项以用如何遍历Stack。程序代码如下:

  1. using System.Collections;//引入命名空间
  2. namespace _2
  3. {
  4. class StackTest
  5. {
  6. static void Main(string[] args)
  7. {
  8. //实例化Stack类的对象
  9. Stack stack = new Stack();
  10. //入栈,使用Pust方法向Stack对向中添加元素
  11. for (int i = ; i < ;i++)
  12. {
  13. stack.Push(i);
  14. Console.WriteLine("{0}入栈",i);
  15. }
  16. //返回栈顶元素
  17. Console.WriteLine ("当前栈顶元素为:{0}",stack.Peek().ToString ());
  18. //出栈
  19. Console.WriteLine("移除栈顶元素:{0}", stack.Pop().ToString());
  20. //返回栈顶元素
  21. Console.WriteLine("当前栈顶元素为:{0}", stack.Peek().ToString());
  22. //遍历栈
  23. Console.WriteLine("遍历栈");
  24. foreach (int i in stack)
  25. {
  26. Console.WriteLine(i);
  27. }
  28. //清空栈
  29. while(stack .Count!=)
  30. {
  31. int s = (int)stack.Pop();
  32. Console.WriteLine("{0}出栈",s);
  33. }
  34. }
  35. }
  36. }

3.Queue类

Queue(队列)类主要实现了一个FIFO(First In First Out,先进先出)的机制。元素在队列的尾部插入(入队操作),并从队列的头部移出(出队操作)。在Queue中主要使用Enqueue、Dequeue、Peek三个方法对队进行操作。Enqueue方法用于将对象添加到Queue的结尾处;Dequeue方法移除并返回位于Queue开始处的对象;Peek方法用于返回位于Queue开始处的对象但不将其移除。

示例将介绍如何创建一个Queue,如何添加项、移除项以用如何遍历Queue。程序代码如下:

  1. using System.Collections;//引入命名空间
  2. namespace _3
  3. {
  4. class QueueTest
  5. {
  6. static void Main(string[] args)
  7. {
  8. //实例化Queue类的对象
  9. Queue queue = new Queue();
  10. //入栈,使用Pust方法向Stack对向中添加元素
  11. for (int i = ; i < ; i++)
  12. {
  13. queue .Enqueue(i);
  14. Console.WriteLine("{0}入队", i);
  15. }
  16. //返回队开始处的元素
  17. Console.WriteLine("当前队开始处元素为:{0}", queue.Peek().ToString());
  18. //遍历队
  19. Console.WriteLine("遍历队");
  20. foreach (int i in queue)
  21. {
  22. Console.WriteLine(i);
  23. }
  24. //清空栈
  25. while (queue.Count != )
  26. {
  27. int q = (int)queue.Dequeue ();
  28. Console.WriteLine("{0}出队", q);
  29. }
  30. }
  31. }
  32. }

4.Hashtable类

Hashtable(哈希表)是一种键/值对集合,这些键/值对根据键的哈希代码进行组织。在一个Hashtable中插入一对Key/Value时,它自动将Key值映射到Value,并允许获取与一个指定的Key相关联的value。在Hashtable中主要使用Add、Remove两个方法对哈希表进行操作。Add方法用于将带有指定键和值的元素添加到Hashtable中;Remove方法用于从Hashtable中移除带有指定键的元素。

示例将介绍如何创建一个Hashtable,如何添加项、移除项以用如何遍历Hashtable。程序代码如下:

  1. using System.Collections;//引入命名空间
  2.  
  3. namespace _4
  4. {
  5. class HashtableTest
  6. {
  7. static void Main(string[] args)
  8. {
  9. //实例化Hashtable类的对象
  10. Hashtable student=new Hashtable ();
  11. //向Hashtable中添加元素
  12. student.Add("S1001","Tom");
  13. student.Add("S1002", "Jim");
  14. student.Add("S1003", "Lily");
  15. student.Add("S1004", "Lucy");
  16. //遍历Hashtable
  17. foreach (DictionaryEntry element in student)
  18. {
  19. string id = element.Key.ToString ();
  20. string name = element.Value.ToString ();
  21. Console.WriteLine("学生的ID:{0} 学生姓名:{1}",id,name);
  22. }
  23. //移除Hashtable中的元素
  24. student.Remove("S1003");
  25. }
  26. }
  27. }

说明:Hashtable不能包含重复的key。如果调用Add 方法来添加一个keys数组中已有的key,就会抛出异常。为了避免这种情况,可以使用ContainsKey方法来测试哈希表中是否包含一个特定的Key。

5.SortedList类

SortedList类也是键/值对的集合,但与哈希表不同的是这些键/值对是按键排序,并可以按照键和索引访问。在SortedList中主要使用Add、Remove、RemoveAt三个方法对SortedList进行操作。Add方法用于将带有指定键和值的元素添加到SortedList中;Remove方法用于从SortedList中移除带有指定键的元素;RemoveAt方法用于移除SortedList的指定索引处的元素。

示例将介绍如何创建一个SortedList,如何添加项、移除项以用如何遍历SortedList。程序代码如下:

  1. using System.Collections;//引入命名空间
  2.  
  3. namespace _5
  4. {
  5. class SortedListTest
  6. {
  7. static void Main(string[] args)
  8. {
  9. //实例化SortedListTest类的对象
  10. SortedList student = new SortedList();
  11. //向SortedList中添加元素
  12. student.Add("S1001", "Tom");
  13. student.Add("S1003", "Jim");
  14. student.Add("S1002", "Lily");
  15. student.Add("S1004", "Lucy");
  16. //遍历SortedList
  17. foreach (DictionaryEntry element in student)
  18. {
  19. string id = element.Key.ToString();
  20. string name = element.Value.ToString();
  21. Console.WriteLine("学生的ID:{0} 学生姓名:{1}", id, name);
  22. }
  23. //移除SortedList中key为“S1003”的元素
  24. student.Remove("S1003");
  25. //移除SortedList中索引为“”的元素,即第一个元素
  26. student.RemoveAt();
  27. }
  28. }
  29. }

说明:同样SortedList也不能包含重复的key。而且使用foreach语句遍历SortedList对象时,会返回DictionaryEntry对象。该对象将根据Key属性,以排序后的顺序返回。

.NET中的Queue和Stack的更多相关文章

  1. C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能

    简介 在今天的文章中,我们将介绍 C# 10 中引入的一项新功能.这是已添加到 List.Queue 和 Stack 集合中的 EnsureCapacity 方法.我们将讨论为什么我们应该使用这个方法 ...

  2. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  3. 数据结构与算法(4) -- list、queue以及stack

    今天主要给大家介绍几种数据结构,这几种数据结构在实现原理上较为类似,我习惯称之为类list的容器.具体有list.stack以及queue. list的节点Node 首先介绍下node,也就是组成li ...

  4. deque、queue和stack深度探索(下)

    deque如何模拟连续空间?通过源码可以看到这个模型就是通过迭代器来完成. 迭代器通过重载操作符+,-,++,--,*和->来实现deque连续的假象,如上图中的 finish-start ,它 ...

  5. Scala 深入浅出实战经典 第39讲:ListBuffer、ArrayBuffer、Queue、Stack操作代码实战

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  6. jQuery动画高级用法(上)——详解animation中的.queue()动画队列插队函数

    决定对animate方面做一些总结,希望能给大家一些启发和帮助 从一个实际应用谈起 今天不谈animate().fadeIn().fadeOut().slideUp().show().hide()诸如 ...

  7. C++中的queue类、QT中的QQueue类

    C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include<queue> 用法(以int型为例): queue<int> Q; //定义一个int ...

  8. C# Queue 和Stack的实现

    Queue 和Stack的使用就不用多说吧,一个是先进先出,一个是后进先出. 这里我主要关注其实现原理. queue的实现如下: public class Queue<T> : IEnum ...

  9. C++关于vector、queue、stack、priority_queue的元素访问

    vector.queue.stack.priority_queue对元素进行元素访问时,返回的是对应元素的引用.

随机推荐

  1. Lotus 迁移到Exchange POC 之 新建2007 服务器!

    我们登录到Exchange 2007 服务器,由于需要对AD进行扩展,我们首先必须完成架构扩展,由于默认没有ldifde工具,所以我们需要执行servermanagercmd –I rsat-adds ...

  2. Dubbo远程调用服务框架原理与示例

    Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架 ...

  3. linux内核完全注释之微型计算机组成结构

    计算机组成原理 1.传统计算机计算机组成框图 CPU通过地址线.数据线.控制线组成的本地总线(或内部总线),与系统的其他部分进行数据通信,地址线用于提供内存或I/O设备的地址,指明所需读写数据的具体操 ...

  4. C:预编译指令

    预编译 关于编译 参考 关于宏定义 参考 预编译又称为预处理,是做些代码文本的替换工作处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预 ...

  5. 在Button的click事件中引起客户端JavaScript

    void action1_Execute(object sender, SimpleActionExecuteEventArgs e) { WebWindow.CurrentRequestWindow ...

  6. 使用Office-Word的博客发布功能(测试博文)

    本人打算在博客园开博,但平时收集和整理资料都在OneNote中,又不想在写博客时还要进行复制粘贴操作,于是就想到了Microsoft Office自带的博客发布功能.在此做了一下测试,发布了此博文. ...

  7. 异步文件上传组件 Uploader

    Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...

  8. 使用 preferredStatusBarStyle 设置状态栏颜色

    iOS9之前,在plist文件中 插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO. 然后敲入代码: [UIAppl ...

  9. sun.misc.BASE64Encoder和sun.misc.BASE64Encoder 找不到解决的方法

    1.右键项目->属性->java bulid path->jre System Library->access rules->resolution选择accessible ...

  10. 推荐几个可以与PhoneGap很好搭配的UI框架

    - xui.js:可以被视作是jquery在phonegap上的替代品,挺好用的- jq.mobi:同上,不过体积比xui.js要大,一般还是用xui.js- jq.ui:jq.mobi配套的UI框架 ...