一、Queue定义数组
System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另外一端移除。函数
二、优势ui
一、能对集合进行顺序处理(先进先出)。spa
二、能接受null值,而且容许重复的元素。code
三、 Queue的构造器对象
构造器函数blog |
注释索引 |
Queue ()队列 |
初始化 Queue 类的新实例,该实例为空,具备默认初始容量(32)并使用默认增加因子(2.0)。ci |
初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具备与所复制的元素数相同的初始容量并使用默认增加因子。 |
|
初始化 Queue 类的新实例,该实例为空,具备指定的初始容量并使用默认增加因子。 |
|
初始化 Queue 类的新实例,该实例为空,具备指定的初始容量并使用指定的增加因子。 |
四、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 中元素的实际数目。 |
六、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.备注
一、Queue 的容量是 Queue 能够保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将经过从新分配来根据须要自动增大容量。可经过调用 TrimToSize 来减小容量。等比因子是当须要更大容量时当前容量要乘以的数字。在构造 Queue 时肯定增加因子。默认增加因子为 2.0。
二、Queue 能接受空引用做为有效值,而且容许重复的元素。
三、空引用能够做为值添加到 Queue。若要区分空值和 Queue 结尾,请检查 Count 属性或捕捉 Queue 为空时引起的 InvalidOperationException异常。