1、Queue定义
System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。
2.优点
1、能对集合进行顺序处理(先进先出)。
2、能接受null值,并且允许重复的元素。
3. Queue的构造器
4、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
分享到:
相关推荐
c# 集合的使用方法,适合初学者。包括ArrayList,Statck,Queue,Dictionary的基本操作方法。
c#官方线程安全集合源码,concurrentBag concurrentqueue,concurrentset,concurrentDictionary,concurrentSet等
队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。
c# 中的arrlist queue HashtableTest SortedList stack 集合
本文档对C#的几种常见的集合(BitArray, Dictionary, Hashtable, NameValueCollection, Queue, Stack)的用法作了归纳,每种集合都附有完整的测试代码。(另外一种常见集合ArrayList收录在另外一份文档:<C# List使用...
C# 集合(Collection) 集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 集合...
此实例代码大部分从网上整理而来,因为近期感觉泛型、集合等在ASP.NET web项目中开发还是比较重要的,对提高系统情能很有帮助。
C#6大集合类:1.ArrayList类2.Stack类3.Queue类4.Hashtable类5.SortedList类6.NameValueCollection类。
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据...
这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 平常在工作中List集合是用的最多的,其次是Array(数组).今天整理一下各类形式的集合,不用就...
集合>队列Queue>创建队列 System.Collections.Queue类提供了四种重载构造函数。 代码如下:using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections; namespace Console...
16.2.7 队列集合:Queue 455 16.2.8 链表:LinkedList 456 16.3 提供索引器 456 16.4 返回null或者空集合 459 16.5 迭代器 459 16.5.1 迭代器的定义 460 16.5.2 迭代器语法 460 16.5.3 ...
C#中遍历各类数据集合的方法,这里自己做下总结:枚举类型、遍历ArrayList(Queue、Stack)、Winform窗体中的控件、HashTable哈希表等等,具体祥看下
C#中遍历各类数据集合的方法总结: 1.枚举类型 //遍历枚举类型Sample的各个枚举名称 foreach (string sp in Enum.GetNames(typeof(Sample))) { ary.Add(sp); } //遍历枚举类型Sample的各个枚举值 foreach ...
本文通过实例,更具体的讲解了队列,队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。 有一个...
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
10.2.2 queue集合类 187 10.2.3 stack集合类 188 10.2.4 hashtable集合类 189 10.2.5 sortedlist集合类 190 10.2.6 使用集合初始化器 191 10.2.7 比较数组和集合 192 10.2.8 使用集合类来玩牌 192 第10章快速...