一、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異常。