C# 泛型队列Queue的使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace L_Queue
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("队列 Queue");
#region 1.本质
// Queue 是队列存储容器
// 先进先出
#endregion
#region 声明
// using System.Collections.Generic;
Queue<int> queue = new Queue<int>();
Queue<string> strQueue = new Queue<string>();
#endregion
#region 增
Console.WriteLine("-----------------------增");
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
queue.Enqueue(4);
printQueue(queue);
#endregion
#region 取
// 队列中不存在删除的概念 只有取(出队列)
Console.WriteLine("-----------------------取");
int deItem = queue.Dequeue();
Console.WriteLine("取出数据:" + deItem);
printQueue(queue);
#endregion
#region 查
Console.WriteLine("-----------------------查");
// 查看队头数据,不会移除
int peekItem = queue.Peek();
Console.WriteLine("查看队头数据:" + peekItem);
printQueue(queue);
// 查看元素是否在队列中
if (queue.Contains(4))
{
Console.WriteLine("队列中存在:4" );
}
#endregion
#region 遍历
Console.WriteLine("----------------------遍历");
Console.WriteLine("当前元素个数:" + queue.Count);
// 迭代器遍历
foreach (int item in queue)
{
Console.Write(item + "\t");
}
Console.WriteLine("");
// 转为数组遍历
int[] nArray = queue.ToArray();
for (int i = 0; i < nArray.Length; i++)
{
Console.Write(nArray[i] + "\t");
}
Console.WriteLine("");
// 循环出列
while (queue.Count > 0)
{
int dItem = queue.Dequeue();
Console.WriteLine("取出数据:" + dItem);
}
#endregion
#region 改
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
Console.WriteLine("-----------------------改");
printQueue(queue);
// 无法修改 只能清除 不能随机访问
Console.WriteLine("清空数据--");
queue.Clear();
Console.WriteLine("当前元素个数:" + queue.Count);
printQueue(queue);
#endregion
Console.ReadLine();
}
// 打印队列数据
private static void printQueue(Queue<int> queue)
{
if (queue.Count == 0)
{
Console.WriteLine("--没有数据");
return;
}
else
{
Console.WriteLine("--打印数据");
}
foreach (int item in queue)
{
Console.Write(item + "\t");
}
Console.WriteLine("");
}
}
}
版权声明:本文为weixin_45875105原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。