隊列代表一個first-in,先出對象集合。當您需要first-in、first-out訪問項目時使用它。當您在列表中添加一個項目時,稱為入隊,當您刪除一個項目時,稱為出隊。此類位於 System.Collections 命名空間下,並實現 ICollection、IEnumerable 和 ICloneable 接口。
隊列類的特點:
- 入隊將一個元素添加到隊列末尾。
- 出隊從隊列開頭刪除最舊的元素。
- 窺視返回位於隊列開頭的最舊元素,但不會將其從隊列中刪除。
- 容量隊列的數量是隊列可以容納的元素的數量。
- 當元素添加到隊列時,通過重新分配內部數組,容量會根據需要自動增加。
- 隊列接受空值作為引用類型的有效值並允許重複元素。
Constructors
構造函數 | 說明 |
---|---|
Queue() | 初始化 Queue 類的一個新實例,該實例為空、具有默認初始容量並使用默認增長因子。 |
Queue(ICollection) | 初始化 Queue 類的新實例,該實例包含從指定集合複製的元素,具有與複製的元素數量相同的初始容量,並使用默認增長因子。 |
隊列(Int32) | 初始化 Queue 類的新實例,該實例為空、具有指定的初始容量並使用默認增長因子。 |
隊列(Int32,單) | 初始化 Queue 類的新實例,該實例為空、具有指定的初始容量並使用指定的增長因子。 |
例子:
// C# code to create a Queue
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a Queue
Queue myQueue = new Queue();
// Inserting the elements into the Queue
myQueue.Enqueue("one");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
myQueue.Enqueue("two");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
myQueue.Enqueue("three");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
myQueue.Enqueue("four");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
myQueue.Enqueue("five");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
myQueue.Enqueue("six");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
}
}
輸出:
Total number of elements in the Queue are : 1 Total number of elements in the Queue are : 2 Total number of elements in the Queue are : 3 Total number of elements in the Queue are : 4 Total number of elements in the Queue are : 5 Total number of elements in the Queue are : 6
Properties
屬性 | 說明 |
---|---|
Queue.Count | 獲取 Queue 中包含的元素數量。 |
Queue.IsSynchronized | 獲取一個值,該值指示對 Queue 的訪問是否同步(線程安全)。 |
SyncRoot | 獲取可用於同步對隊列的訪問的對象。 |
例子:
// C# code to Get the number of
// elements contained in the Queue
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a Queue
Queue myQueue = new Queue();
// Inserting the elements into the Queue
myQueue.Enqueue("Chandigarh");
myQueue.Enqueue("Delhi");
myQueue.Enqueue("Noida");
myQueue.Enqueue("Himachal");
myQueue.Enqueue("Punjab");
myQueue.Enqueue("Jammu");
// Displaying the count of elements
// contained in the Queue
Console.Write("Total number of elements in the Queue are : ");
Console.WriteLine(myQueue.Count);
}
}
輸出:
Total number of elements in the Queue are : 6
Methods
方法 | 說明 |
---|---|
Queue.Clear | 從隊列中刪除所有對象。 |
Queue.Clone() | 創建隊列的淺拷貝。 |
Queue.Contains() | 確定元素是否在隊列中。 |
Queue.CopyTo() | 從指定的數組索引開始,將隊列元素複製到現有的一維數組。 |
Queue.Dequeue | 刪除並返回隊列開頭的對象。 |
Queue.Enqueue() | 將一個對象添加到隊列末尾。 |
Queue.Equals() | 確定指定對象是否等於當前對象。 |
Queue.GetEnumerator | 返回一個遍曆隊列的枚舉器。 |
GetHashCode() | 用作默認的哈希函數。 |
GetType() | 獲取當前實例的類型。 |
MemberwiseClone() | 創建當前對象的淺拷貝。 |
Queue.Peek | 返回隊列開頭的對象而不刪除它。 |
Queue.Synchronized() | 返回一個包裝原始隊列的新隊列,並且是線程安全的。 |
Queue.ToArray | 將隊列元素複製到新數組。 |
ToString() | 返回表示當前對象的字符串。 |
TrimToSize() | 將容量設置為隊列中元素的實際數量。 |
示例 1:
// C# code to Check if a Queue
// contains an element
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a Queue
Queue myQueue = new Queue();
// Inserting the elements into the Queue
myQueue.Enqueue(5);
myQueue.Enqueue(10);
myQueue.Enqueue(15);
myQueue.Enqueue(20);
myQueue.Enqueue(25);
// Checking whether the element is
// present in the Queue or not
// The function returns True if the
// element is present in the Queue, else
// returns False
Console.WriteLine(myQueue.Contains(7));
}
}
輸出:
False
示例 2:
// C# code to Convert Queue to array
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating a Queue
Queue myQueue = new Queue();
// Inserting the elements into the Queue
myQueue.Enqueue("Geeks");
myQueue.Enqueue("Geeks Classes");
myQueue.Enqueue("Noida");
myQueue.Enqueue("Data Structures");
myQueue.Enqueue("GeeksforGeeks");
// Converting the Queue
// into object array
Object[] arr = myQueue.ToArray();
// Displaying the elements in array
foreach(Object obj in arr)
{
Console.WriteLine(obj);
}
}
}
輸出:
Geeks Geeks Classes Noida Data Structures GeeksforGeeks
參考:
相關用法
- C# Queue.GetEnumerator()用法及代碼示例
- C# Queue.Clear()用法及代碼示例
- C# Queue.Dequeue()用法及代碼示例
- C# Queue.Peek()用法及代碼示例
- C# Queue.Clear用法及代碼示例
- C# Queue.Clone()用法及代碼示例
- C# Queue.Contains()用法及代碼示例
- C# Queue.CopyTo()用法及代碼示例
- C# Queue.Dequeue用法及代碼示例
- C# Queue.Enqueue()用法及代碼示例
- C# Queue.Equals()用法及代碼示例
- C# Queue.GetEnumerator用法及代碼示例
- C# Queue.Peek用法及代碼示例
- C# Queue.Synchronized()用法及代碼示例
- C# Queue.ToArray用法及代碼示例
- C# Queue.Count用法及代碼示例
- C# Queue.IsSynchronized用法及代碼示例
- C# Queue轉array用法及代碼示例
- C# String Clone()用法及代碼示例
- C# String Compare()用法及代碼示例
- C# String CompareOrdinal()用法及代碼示例
- C# String CompareTo()用法及代碼示例
- C# String Concat()用法及代碼示例
- C# String Contains()用法及代碼示例
- C# String Copy()用法及代碼示例
注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 C# | Queue Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。