Queue——C#浅谈
1、Queue定义
System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。
2.优点
1、能对集合进行顺序处理(先进先出)。
2、能接受null值,并且允许重复的元素。
3. Queue的构造器
构造器函数 |
注释 |
初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。 |
|
初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。 |
|
初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。 |
|
初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。 |
4、Queue的属性
属性名 |
注释 |
获取 Queue 中包含的元素数。 |
5. Queue的方法
方法名 |
注释 |
Void Clear() |
从 Queue 中移除所有对象。 |
Bool Contains(object obj) |
确定某元素是否在 Queue 中。 |
Object Clone() |
创建 Queue 的浅表副本。 |
Void CopyTo(Array array,int index) |
从指定数组索引开始将 Queue 元素复制到现有一维Array 中。 |
Object Dequeue() |
移除并返回位于 Queue 开始处的对象。 |
Void Enqueue(object obj) |
将对象添加到 Queue 的结尾处。 |
Object Peek() |
返回位于 Queue 开始处的对象但不将其移除。 |
Object[]ToArray() |
将 Queue 元素复制到新数组。 |
Void TrimToSize() |
将容量设置为 Queue 中元素的实际数目。 |
6、Queue的使用示例
- 代码
- class Program
- {
- static void Main(string[] args)
- {
- //创建一个队列
- Queue myQ = new Queue();
- myQ.Enqueue("The");//入队
- myQ.Enqueue("quick");
- myQ.Enqueue("brown");
- myQ.Enqueue("fox");
- myQ.Enqueue(null);//添加null
- myQ.Enqueue("fox");//添加重复的元素
- // 打印队列的数量和值
- Console.WriteLine("myQ");
- Console.WriteLine("\tCount: {0}", myQ.Count);
- // 打印队列中的所有值
- Console.Write("Queue values:");
- PrintValues(myQ);
- // 打印队列中的第一个元素,并移除
- Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());
- // 打印队列中的所有值
- Console.Write("Queue values:");
- PrintValues(myQ);
- // 打印队列中的第一个元素,并移除
- Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());
- // 打印队列中的所有值
- Console.Write("Queue values:");
- PrintValues(myQ);
- // 打印队列中的第一个元素
- Console.WriteLine("(Peek) \t{0}", myQ.Peek());
- // 打印队列中的所有值
- Console.Write("Queue values:");
- PrintValues(myQ);
- Console.ReadLine();
- }
- public static void PrintValues(IEnumerable myCollection)
- {
- foreach (Object obj in myCollection)
- Console.Write(" {0}", obj);
- Console.WriteLine();
- }
- }
7.备注
1、Queue 的容量是 Queue 可以保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将通过重新分配来根据需要自动增大容量。可通过调用 TrimToSize 来减少容量。等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。默认增长因子为 2.0。
2、Queue 能接受空引用作为有效值,并且允许重复的元素。
3、空引用可以作为值添加到 Queue。若要区分空值和 Queue 结尾,请检查 Count 属性或捕捉 Queue 为空时引发的 InvalidOperationException
Queue——C#浅谈的更多相关文章
- 浅谈C++ STL queue 容器
浅谈C++ STL queue 容器 本篇随笔简单介绍一下\(C++STL\)中\(queue\)容器的使用方法和常见的使用技巧.\(queue\)容器是\(C++STL\)的一种比较基本的容器.我们 ...
- 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)
本文转载于:http://www.cnblogs.com/osmondy/p/3266023.html 浅谈开源项目Android-Universal-Image-Loader(Part 3.1) 最 ...
- C++ STL中的常用容器浅谈
STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用.下面,我们就浅谈某些常用的容器.这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点.STL中 ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- 【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件
简介 马三最近换到了一家新的公司撸码,新的公司 UI 部分采用的是 NGUI 插件,而之前的公司用的一直是 Unity 自带的 UGUI,因此马三利用业余时间学习了一下 NGUI 插件的使用,并把知识 ...
- 浅谈分布式消息技术 Kafka(转)
一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可 ...
- 浅谈分布式消息技术 Kafka
Kafka的基本介绍Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngin ...
- 浅谈期望的线性性(可加性)【CodeForces280c】【bzoj3036】【bzoj3143】
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63399955 向大(hei)佬(e)势力学(di ...
- 搞懂分布式技术21:浅谈分布式消息技术 Kafka
搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...
随机推荐
- 几款Java常用基础工具库
通用工具类(字符串.时间格式化.BeanUtils.IO) 1. commons-lang3库 1.1. org.apache.commons.lang3.StringUtils类 日常代码中,我们经 ...
- R语言数据管理(四):数据导出
与read.*函数对应,导出函数为write.*函数. 比较常见的为write.csv和write.table. 一般格式: setwd("D:\\") write.table(y ...
- memset使用
void memset(void s, int ch, size_t n); 函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 ...
- 使用JavaScript定义一个微信小程序插件样例
var wxTimer = new wxTimer({ beginTime: "00:00:20", complete: function () { wx.redirectTo({ ...
- Java编程思想(第4版) 中文清晰PDF完整版
Java编程思想(第4版) 中文清晰PDF完整版 [日期:2014-08-11] 来源:Linux社区 作者:Linux [字体:大 中 小] <Java编程思想>这本书赢得了全 ...
- [原创]关于在CentOS 7.0 下 安装nfs ,遇见 Transaction check error问题的解决
今天小弟的同学在使用阿里云的服务器安装nfs的时候,出现了一下问题 Transaction check error: file /usr/lib/systemd/system/blk-availabi ...
- HDU Rightmost Digit
Rightmost Digit Time Limit:1000MS Memory Limit: ...
- MYSQL函数 Cast和convert的用法详解
MYSQL Cast函数是非常重要的MYSQL函数,下面就将为您详细介绍MYSQL Cast函数的语法及其使用,希望能让您对MYSQL Cast函数有更多的认识. BINARY BINARY操 ...
- 红米1S刷机
1. http://www.miui.com/thread-7371342-1-1.html http://www.miui.com/download-226.html#306 http://www. ...
- Quota Management and Enforcement
Neutron API中大多的resource都需要quota limits. Neutron API暴露出一个extension 来管理quota,Quota limits are enforced ...