Queue类通常被称为队列,是一类特殊的集合。如果不熟悉队列的相关知识,可以将队列想像为一个现实中人排成的队伍,如车站前的购票队伍。这类队伍的属性是先排队,则先购票,后排队则后购票。队列类就是这样一个“队伍”,先进入队列中的元素(对应现实队伍中的“人”)可以先出队,而后进入队列中的元素只能后出队。
队列的创建非常简单,其创建方式与ArrayList类似。同样可以使用规定初始容量,也可以不规定初始容量。下面通过一个实例演示创建队列的办法。
创建一个Windows控制台应用程序,演示将创建队列的办法。
(1)创建一个名为QueueCreate的控制台应用程序项目。
(2)修改Program.cs文件中Main方法的内容如下:
static void Main(string[] args)
{
Queue a ;
a = new Queue();
Console.WriteLine(a.Count);
Queue b;
b = new Queue(5);
Console.WriteLine(b.Count);
}
按Ctrl+F5组合键运行程序,运行结果如图5-11所示。
可以看到,两个队列虽然定义方式不同,但队列中都没有元素,因此输出都为0。
图5-11 运行结果
元素入队可以理解为现实生活中新开始排队的人员,按照排队的规则,只能排到队伍的末尾。队列中的规则也是这样,元素入队时排在队伍的末尾。元素入队的方法是Enqueue。
下面通过一个实例演示元素入队的方法。
创建一个Windows控制台应用程序,演示将元素入队的方式。
(1)创建一个名为QueueIn的控制台应用程序项目。
(2)修改Program.cs文件中Main方法的内容如下:
static void Main(string[] args)
{
Queue a = new Queue();
Console.WriteLine(a.Count);
a.Enqueue(1);
a.Enqueue(2);
a.Enqueue(3);
a.Enqueue(4);
a.Enqueue(5);
Console.WriteLine(a.Count);
}
按Ctrl+F5组合键运行程序,运行结果如图5-12所示。
图5-12 运行结果
可以看到,刚创建队列时队列中都没有元素,因此输出为0。随后向队列中添加了5个元素,因此队列中元素的个数为5个。第2个输出表明元素已经成功入队。
在现实生活中的排队系统中,先排队的人先享受服务并先离开。在C#中的队列中,先入队的元素先出队。队列中元素的出队方法是Dequeue。下面通过一个实例演示元素出队的方式。
创建一个Windows控制台应用程序,演示将元素出队的方式。
(1)创建一个名为QueueOut的控制台应用程序项目。
(2)修改Program.cs文件中Main方法的内容如下:
static void Main(string[] args)
{
Queue a = new Queue();
Console.WriteLine("元素个数:{0}",a.Count);
a.Enqueue(1);
a.Enqueue(2);
a.Enqueue(3);
a.Enqueue(4);
a.Enqueue(5);
Console.WriteLine("元素个数:{0}", a.Count);
for (int i = 0; i < 5; i++)
{
Console.WriteLine(a.Dequeue());
}
Console.WriteLine("元素个数:{0}", a.Count);
按Ctrl+F5组合键运行程序,运行结果如图5-13所示。
图5-13 运行结果
可以看到,为队列添加完元素后,队列中元素的个数为5个。然后采用Dequeue方法使元素出队,元素出队的顺序与其入队的顺序相同。