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的使用示例
03 | static void Main( string [] args) |
06 | Queue myQ = new Queue(); |
15 | Console.WriteLine( "myQ" ); |
16 | Console.WriteLine( "\tCount: {0}" , myQ.Count); |
19 | Console.Write( "Queue values:" ); |
23 | Console.WriteLine( "(Dequeue)\t{0}" , myQ.Dequeue()); |
26 | Console.Write( "Queue values:" ); |
30 | Console.WriteLine( "(Dequeue)\t{0}" , myQ.Dequeue()); |
33 | Console.Write( "Queue values:" ); |
37 | Console.WriteLine( "(Peek) \t{0}" , myQ.Peek()); |
40 | Console.Write( "Queue values:" ); |
47 | public static void PrintValues(IEnumerable myCollection) |
49 | foreach (Object obj in myCollection) |
50 | Console.Write( " {0}" , obj); |
7.备注
1、Queue 的容量是 Queue 可以保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将通过重新分配来根据需要自动增大容量。可通过调用 TrimToSize 来减少容量。等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。默认增长因子为 2.0。
2、Queue 能接受空引用作为有效值,并且允许重复的元素。
3、空引用可以作为值添加到 Queue。若要区分空值和 Queue 结尾,请检查 Count 属性或捕捉 Queue 为空时引发的 InvalidOperationException异常。
4.更多可参考:http://msdn.microsoft.com/zh-cn/library/system.collections.queue_members(v=VS.90).aspx