Queue本质
Queue是一个C#为我们封装好的类
它的本质也是object[]数组,只是封装了特殊的存储规则
Queue是队列存储容器
队列是一种先进先出的数据结构
先存入的数据先获取,后存入的数据后获取
先进先出
队列无法改变其中的元素 只能进出队列
实在要改 只有清
申明
需要引用命名空间 System.Collections
Queue queue = new Queue();
入队
queue.Enqueue(1);
queue.Enqueue("123");
queue.Enqueue(1.4f);
queue.Enqueue(new Test());
出队
队列中不存在删除的概念
只有取的概念 取出先加入的对象
object v = queue.Dequeue();
Console.WriteLine(v);
v = queue.Dequeue();
Console.WriteLine(v);
查看队头元素 查看是否包含
1.查看队列头部元素但不会移除
v = queue.Peek();
Console.WriteLine(v);
v = queue.Peek();
Console.WriteLine(v);
2.查看元素是否存在于队列中
if( queue.Contains(1.4f) )
{
Console.WriteLine("队列中存在1.4f");
}
遍历
1.长度
Console.WriteLine(queue.Count);
2.用foreach遍历
foreach (object item in queue)
{
Console.WriteLine(item);
}
3.还有一种遍历方式
将队列转换为object数组
object[] array = queue.ToArray();
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
4.循环出列
while(queue.Count>0)
{
object o = queue.Dequeue();
Console.WriteLine(o);
}
Console.WriteLine(queue.Count);
class Program
{static Queue queue=new Queue();public static void Main(){StoreInfo();while (queue .Count>0) {object o = queue.Dequeue();Thread.Sleep(1000);Console.WriteLine(o);}}protected static void StoreInfo(){for (int i = 0; i < 10; i++){queue.Enqueue(i);}}