首頁  >  文章  >  後端開發  >  C# 中的隊列

C# 中的隊列

WBOY
WBOY原創
2024-09-03 15:30:43727瀏覽

佇列是一個物件的集合,它以 FIFO(先進先出)的形式表示,先加入的元素先出現,在 C# 中,佇列集合類別存在於命名空間 System.Collection 中。佇列以 FIFO 順序儲存元素,我們可以按照先進先出的方式存取元素。佇列與堆疊集合正好相反,其中堆疊是 LIFO(後進先出)。 Queue 集合允許存在大量空值和重複值。佇列使用兩個方法,稱為 Enqueue() 和 Dequeue(),分別用於新增和檢索值。

文法:

隊列是使用稱為隊列的資料類型建立的。這裡「new」關鍵字是用來建立佇列的物件。在佇列集合中,我們使用 Enqueue 方法新增項目,使用 Dequeue 方法刪除項目。

Queue QueueObject = new Queue() // creation of Queue
QueueObject.Enqueue(element) // to add element to Queue
QueueObject.Dequeue() //to remove element to Queue

C# 中的佇列如何運作?

佇列以 FIFO(先進先出)的形式出現,它是物件的集合,當我們需要以先進先出的方式存取專案時,會使用此流程。此佇列是非通用的,它使用 System.Collections 命名空間中定義的集合類型。一般來說,當我們以佇列集合中儲存的方式使用資訊時,佇列很有用。

Queue 透過 IEnumerable、ICloneable、ICollection 介面實作。對於引用類型,它接受 null 有效值。在佇列集合中,新增項目時,我們使用 Enqueue 方法;刪除項目時,我們使用 Dequeue 方法。新增項目到佇列時,總容量會自動增加所需的記憶體。

範例:

using System;
using System.Collections;
public class QueueProgram {
static public void Main()
{
// to create a queue - using Queue class
Queue _objQueue = new Queue();
// to add an elements in Queue - using Enqueue() method
_objQueue.Enqueue("DotNet");
_objQueue.Enqueue("SQL");
_objQueue.Enqueue("Java");
_objQueue.Enqueue("PHP");
_objQueue.Enqueue("Android");
Console.WriteLine("Working Process of Queue\n");
Console.WriteLine("Number of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to obtain the topmost element of _objQueue - using Dequeue method
Console.WriteLine("\nTo Get the topmost element in Queue" + " is            : {0}", _objQueue.Dequeue());
Console.WriteLine("\nNumber of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to obtain the topmost element of _objQueue - using Peek method
Console.WriteLine("\nTo Get the topmost element in Queue is            : {0}", _objQueue.Peek());
Console.WriteLine("\nNumber of Elements Present in Object(_objQueue)   : {0}", _objQueue.Count);
// to check hether the element is present in the Queue
if (_objQueue.Contains("SQL") == true)
{
Console.WriteLine("\nElement is Present !");
}
else
{
Console.WriteLine("\nElement is not Present !");
}
}
}

在上面的程式中,我們將Queue宣告為_objQueue來保存Queue的項目。為了新增元素,我們使用 Enqueue() 方法,為了刪除元素,我們使用 Dequeue() 方法。 Count屬性用於取得佇列中元素的總數,該屬性的傳回值是一個數字。另一個方法 Contains() 用來檢查給定值/元素是否存在,它會傳回 bool 值 true 或 false。 Peek() 用來取得佇列集合中最上面的值。

輸出:

C# 中的隊列

從上面的輸出來看,顯示了 Queue 的項目。首先,它使用 Count() 方法顯示佇列中存在的元素總數,然後使用 Peek() 方法顯示最上面的元素。透過使用 Contains() 方法,它檢查佇列集合中是否存在該元素。

建構子

在 Queue 類別中,它是由用於建立佇列的建構子組成。

  • Queue():建構子 Queue() 用於建立佇列類別的實例,它有助於使用預設成長因子。
  • Queue(ICollection): 此建構子用於建立佇列的實例,它包含從指定集合複製的項目,並且具有與複製的項目數相同的容量。它還使用預設的初始生長因子。
  • Queue(Int32):此建構函式用於建立一個空的 Queue 類別實例,該實例指定了初始容量,並使用預設的成長因子。
  • Queue(Int32, Single):此建構函式用於建立一個空的 Queue 類別實例,該實例指定了初始容量,並使用預設的成長因子。

C# 方法中的佇列函數

讓我們看看以下函數列表,其中是 Queue 類別的常用方法 -

  • Enqueue():Enqueue方法用於在Queue中添加元素時使用,它是一個非泛型集合,因此我們可以在該方法中添加任何資料類型的元素。此方法使用的簽章是 void Enqueue(object obj)
  • Dequeue():Dequeue 方法用於存取佇列,用於擷取佇列中最頂層的元素。透過用於刪除佇列的 FIFO 方法 Dequeue 及其傳回佇列集合中的第一個元素的結果,僅當佇列的總計數始終大於零時才呼叫 Dequeue(),否則會引發例外狀況。此方法使用的簽章是 object Dequeue()
  • Peek(): 此方法將始終傳回佇列集合中的第一個元素,而不是從佇列中刪除。如果呼叫空隊列集合,它會拋出異常。
  • 此方法使用的簽章是object Peek()。
  • Clear():此方法用於從佇列集合中刪除物件。此方法使用的簽章是 void Clear()。
  • Contains():此方法用來檢查Queue集合中是否存在某個元素。此方法使用的簽章是 bool Contains(object obj).
  • Clone():Clone() 方法用於建立隊列集合的淺表副本。
  • Equals(Object):此方法用於檢查特定物件是否等於目前物件。
  • 同步(佇列):此方法傳回一個包含原始佇列的新佇列。
  • TrimToSize(): 此方法用於設定隊列集合中實際項目數的容量。

結論

在這篇文章中,我們了解了C#中Queue()的用法,它是基於先進先出的概念,我們分別使用Enqueue()和Dequeue()方法來新增和刪除佇列。

以上是C# 中的隊列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 使用靜態下一篇:C# 使用靜態