1. 程式人生 > >c# Queue

c# Queue

優點 contains clone for queue類 div contain peek hash

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 中元素的實際數目。

重新設置隊列的容量,因為調用Dequeue方法讀取刪除元素後不會重新設置隊列的容量。

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# Queue