1、Queue定义

System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。

2.优点

1、能对集合进行顺序处理(先进先出)。

2、能接受null值,并且允许重复的元素。

3. Queue的构造器

构造器函数

注释

Queue ()

初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。

Queue (ICollection)

初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。

Queue (Int32)

初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。

Queue (Int32, Single)

初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。

4、Queue的属性

属性名

注释

Count

获取 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#浅谈的更多相关文章

  1. 浅谈C++ STL queue 容器

    浅谈C++ STL queue 容器 本篇随笔简单介绍一下\(C++STL\)中\(queue\)容器的使用方法和常见的使用技巧.\(queue\)容器是\(C++STL\)的一种比较基本的容器.我们 ...

  2. 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

    本文转载于:http://www.cnblogs.com/osmondy/p/3266023.html 浅谈开源项目Android-Universal-Image-Loader(Part 3.1) 最 ...

  3. C++ STL中的常用容器浅谈

    STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用.下面,我们就浅谈某些常用的容器.这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点.STL中 ...

  4. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  5. 【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件

    简介 马三最近换到了一家新的公司撸码,新的公司 UI 部分采用的是 NGUI 插件,而之前的公司用的一直是 Unity 自带的 UGUI,因此马三利用业余时间学习了一下 NGUI 插件的使用,并把知识 ...

  6. 浅谈分布式消息技术 Kafka(转)

    一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可 ...

  7. 浅谈分布式消息技术 Kafka

    Kafka的基本介绍Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngin ...

  8. 浅谈期望的线性性(可加性)【CodeForces280c】【bzoj3036】【bzoj3143】

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63399955 向大(hei)佬(e)势力学(di ...

  9. 搞懂分布式技术21:浅谈分布式消息技术 Kafka

    搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...

随机推荐

  1. centos下写Symfony

    之前都是在windows上写SY,现在要部署到Linux上了,提前测试一下. 第一步,要有台Centos机器,安装过程略 第二步,安装数据库,PostgreSQL,过程; 第三步,安装版本控制器,GI ...

  2. CI 框架下执行CLI(命令行)

    1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools e ...

  3. model特性

    1.scope http://blog.csdn.net/lissdy/article/details/51107883 2.ActiveConcern http://www.tuicool.com/ ...

  4. c的详细学习(11)文件

    为了提高数据输入/输出的处理效率,可以将程序运行时所需要的原始数据从文件中读取,并将程序运行的结果写入到文件中.     (1)文件概述     1)基本概念 文件是指存储在外部介质上数据的集合,可以 ...

  5. ubuntu14.04 pygame安装 python2.7

    系统:ubuntu14.04 LTS amd64python版本:2.7.6pygame版本:1.9.1release别这种方法了,这么安装不知道什么原因就出现了问题,在使用pygame.image. ...

  6. 最新版本express 4.2.0的快速建站--简单举例

    express是Node.js的官方唯一推荐的框架,它扩展了http工具以及一些好用的功能.如此好用的东西,赶紧的安装起来: npm install express -g 新版本的express的命令 ...

  7. Android蓝牙串口通讯【转】

    本文转载自:http://blog.sina.com.cn/s/blog_631e3f2601012ixi.html Android蓝牙串口通讯 闲着无聊玩起了Android蓝牙模块与单片机蓝牙模块的 ...

  8. WebForm 使用点滴。。。。

    WebForm使用方式与WinForm很是相似,可控性非常高! 1.调用别的按钮事件: BtnSelect_Click(sender, e);

  9. 分享知识-快乐自己:HTTP 响应码

    状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在 ...

  10. Linux 网卡操作与安全初始化

    一.Linux网络相关概念和修改IP地址的方法 1.1 网卡命名方式 CENTOS6的网卡命名方式: 它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. ...