using System;
using System.Collections;
namespace Lesson3_Queue
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Queue");
#region 知识点一 Queue的本质
//Queue是一个C#为我们封装好的类
//它的本质也是object[]数组,只是封装了特殊的存储规则
//Queue是队列存储容器
//队列是一种先进先出的数据结构
//先存入的数据先获取,后存入的数据后获取//先进先出
#endregion
#region 知识点二 声明
//需要使用命名空间 System.Collections;
Queue que = new Queue();
#endregion
#region 知识点三 增取改查
#region 增
//将对象添加到 Queue 的结尾处。
//public virtual void Enqueue (object? obj);
que.Enqueue(1);
que.Enqueue("123");
que.Enqueue(222);
que.Enqueue("Panzi");
#endregion
#region 取
//移除并返回位于 Queue 开始处的对象。
//public virtual object? Dequeue ();
Object v = que.Dequeue();
Console.WriteLine(v);
v = que.Dequeue();
Console.WriteLine(v);
#endregion
#region 查
//返回位于 Queue 开始处的对象但不将其移除。
//public virtual object? Peek ();
v = que.Peek();
Console.WriteLine(v);
//确定某元素是否在 Queue 中。
//public virtual bool Contains (object? obj);
if (que.Contains("Panzi"))
{
Console.WriteLine("exits");
} else
{
Console.WriteLine("No exits");
}
#endregion
#region 改
//队列只能出队入队Queue.Enqueue(),Queue.Dequeue();
//从 Queue 中移除所有对象。
//public virtual void Clear ();
//que.Clear();
#endregion
#endregion
#region 知识点四 遍历
//元素数量
int len = que.Count;
//1.foreach遍历
foreach(Object item in que) {
Console.WriteLine(item);
}
//2.将队列装换为数组
//将 Queue 元素复制到新数组。
//public virtual object?[] ToArray ();
Object[] arry = que.ToArray();
foreach(Object it in arry)
{
Console.WriteLine(it);
}
//3.循环出队
/*
* while (que.Count > 0) {
* Console.WriteLine(que.Dequeue());
* }
*/
#endregion
#region 知识点五 装箱拆箱
//由于用万物之父来存储数据,自然存在装箱拆箱。
//当往其中进行值类型存储时就是在装箱
//当将值类型对象取出来转换使用时,就存在拆箱。
#endregion
}
}
}
### 练习题
#### 1.简述队列的存储规则
先进先出
#### 2.使用队列存储信息
一次性存储10条信息,每隔一段时间打印一条信息,控制台打印消息是要有明显停顿感