Queue是C#为我们封装好的类,它的本质是object[]数组,其中封装了特殊的存储规则。
Queue是队列存储容器,队列是一种先进先出的数据结构,先存入的数据先获取,后存入的数据后获取。当我们需要对各项进行先进先出的访问时,则使用队列。当我们在列表中添加一项,称为入队;当我们从列表中移除一项时,称为出队.在队列中, 我们可以存储相同类型和不同类型的元素。通常, 当我们以与存储在集合中相同的方式访问该信息时, 队列是有用的, 因为它是存储数据的临时存储。
那么我们改如何申明Queue呢,我们可以使用以下代码来申明:
Queue queue = new Queue();//Stack在System.Collections命名空间下定义;因此,在程序中使用Queue时,必须添加System.Collections命名空间
下面列举 Queue 类的一些常用的 方法:
public virtual void Clear();//从 Queue 中移除所有的元素。 public virtual bool Contains( object obj );//判断某个元素是否在 Queue 中。 public virtual object Dequeue();//移除并返回在 Queue 的开头的对象。 public virtual void Enqueue( object obj );//向 Queue 的末尾添加一个对象。 public virtual object[] ToArray();//复制 Queue 到一个新的数组中。 public virtual void TrimToSize();//设置容量为 Queue 中元素的实际个数。
需要注意的是,Queue的增删查改有些不同,Queue队列中不存在删除的概念,只有取的概念,即取出先加入的对象,和栈的方法相同。查看只能查看队列头部数据但并不会将其移除,也可以查看数据是否存在于队列中。Queue队列无法改变其中的数据,只能进出队列。如果非要改的化,只能和栈一样选择清空。
遍历
长度
Console.WriteLine(queue.Count);
用foreach遍历
foreach(object item in queue) { Console.WriteLine(item); }
第三种遍历方法是将队列转换为object数组
Object[] array = queue.ToArray(); for(int i=0;i<array.Length;i++) { Console.WriteLine(array[i]); }
循环出列
while(queue.Count>0) { Object o=queue.Dequeue(); Console.WriteLine(o); } Console.WriteLine(queue.Count);
由于Queue用万物之父来存储数据,所以存在装箱拆箱的概念。当我们往其中进行值类型存储时,就是在装箱;当我们将值类型对象取出来转换使用时,就是在拆箱。