C# |队列类
队列 代表一个 先进先出 集合的对象。当您需要先进先出访问项目时,可以使用它。当您在列表中添加一个项目时,它被称为入队,当您移除一个项目时,它被称为出队。该类属于系统。集合命名空间并实现 ICollection、IEnumerable 和 I Coloneable接口。
队列类特征:
- 入队在队列末尾添加一个元素。
- 出列从队列开始处移除最旧的元素。
- Peek 返回队列开始处最早的元素,但不将其从队列中移除。
- 队列的容量是队列可以容纳的元素数量。
- 当元素添加到队列中时,容量会根据需要通过重新分配内部阵列来自动增加。
- 队列接受 null 作为引用类型的有效值,并允许重复元素。
构造器
| 构造器 | 描述 | | 队列() | 初始化队列类的新实例,该实例为空,具有默认初始容量,并使用默认增长因子。 | | 伫列(icollion) | 初始化队列类的新实例,该实例包含从指定集合复制的元素,具有与复制的元素数相同的初始容量,并使用默认增长因子。 | | 队列(Int32) | 初始化队列类的新实例,该实例为空,具有指定的初始容量,并使用默认增长因子。 | | 队列(Int32,单个) | 初始化队列类的新实例,该实例为空,具有指定的初始容量,并使用指定的增长因子。 |
示例:
// 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);
}
}
Output:
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
性能
| 财产 | 描述 | | 计数 | 获取队列中包含的元素数量。 | | 同步 | 获取一个值,该值指示对队列的访问是否同步(线程安全)。 | | 【sync root】 | 获取一个对象,该对象可用于同步对队列的访问。 |
示例:
// 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);
}
}
Output:
Total number of elements in the Queue are : 6
方法
| 方法 | 描述 | | 晴() | 从队列中移除所有对象。 | | T1】克隆()T3】 | 创建队列的浅拷贝。 | | 包含(对象) | 确定元素是否在队列中。 | | CopyTo(Array,Int32) | 从指定的数组索引开始,将队列元素复制到现有的一维数组中。 | | 出列() | 移除并返回队列开头的对象。 | | 【入队(对象) | 将对象添加到队列的末尾。 | | 等于(对象) | 确定指定的对象是否等于当前对象。 | | 【get 分子() | 返回遍历队列的枚举数。 | | GetHashCode() | 用作默认哈希函数。 | | gettype() | 获取当前实例的类型。 | | MemberWiseCrone() | 创建当前对象的浅拷贝。 | | 【Peek() | 返回队列开头的对象,而不删除它。 | | 【同步(排队) | 返回一个新队列,该队列包装原始队列,并且是线程安全的。 | | 【toaarray() | 将队列元素复制到新数组中。 | | 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));
}
}
Output:
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);
}
}
}
Output:
Geeks
Geeks Classes
Noida
Data Structures
GeeksforGeeks
参考:
版权属于:月萌API www.moonapi.com,转载请注明出处