C# 泛型队列Queue的使用

  • Post author:
  • Post category:其他

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 版权协议,转载请附上原文出处链接和本声明。