c#中 Queue队列类 理解

时间:2021-07-12 17:40:08

 

Queue定义 : System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。

          能对集合进行顺序处理(先进先出)。能接受null值,并且允许重复的元素。

 

c#中 Queue队列类 理解

构造函数: queue():   初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。

方法: Dequeue()  : 将对象添加到 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();
}
}