淺析 c# Queue

來源:互聯網
上載者:User

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

 

6、Queue的使用樣本

?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 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 能接受Null 參考作為有效值,並且允許重複的元素。

3、Null 參考可以作為值添加到 Queue。若要區分空值和 Queue 結尾,請檢查 Count 屬性或捕捉 Queue 為空白時引發的 InvalidOperationException異常。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.