C#使用Queue<T>类进行队列设计

目录

一、涉及到的知识点

1.Queue类

2.Queue类的方法和属性

[二、使用C# Queue类的实例](# Queue类的实例)


一、涉及到的知识点

1.Queue类

C#中确实提供了队列类Queue。队列是一种先进先出(FIFO)的数据结构,用于存储和操作对象的有序集合。在C#中,可以使用System.Collections.Generic命名空间中的Queue<T>类来实现队列。队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。Queue类将队列作为循环数组实现,存储在Queue类中的对象在一端插入,从另一端移除。

cs 复制代码
// 创建一个新的Queue<int>实例
Queue<int> queue = new Queue<int>();

//或

// 创建一个新的Queue<int>实例
Queue<int> myQueue = new();

2.Queue<T>类的方法和属性

Queue<T>类提供了许多方法和属性,用于处理队列中的元素。以下是一些常用的方法:

  • Enqueue(T item):将元素添加到队列的末尾。
  • Dequeue():从队列的开头移除并返回元素。
  • Peek():查看队列开头的元素,但不将其移除。
  • Clear():移除队列中的所有元素。
  • Contains(T item):检查队列是否包含特定的元素。
  • CopyTo(T\[\] array, int arrayIndex):将队列中的元素复制到一个数组中。
  • Count:获取队列中元素的数量。

二、使用C# Queue类的实例

这个实例演示了如何创建一个Queue<int>实例,向其中添加元素,查看元素,从队列中移除元素,再次查看元素,向队列中添加新元素,查看队列开头的元素,清空队列,以及检查队列是否为空。

cs 复制代码
// 使用C# Queue类的实例

namespace _134_1
{
    class Program
    {
        static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
            // 创建一个新的Queue<int>实例
            Queue<int> myQueue = new();

            // 向队列中添加一些元素
            myQueue.Enqueue(1);
            myQueue.Enqueue(2);
            myQueue.Enqueue(3);

            // 查看队列中的元素
            Console.WriteLine("队列中的元素:");
            foreach (int element in myQueue)
            {
                Console.Write(element + " ");
            }

            // 从队列中移除并返回第一个元素
            int dequeuedElement = myQueue.Dequeue();
            Console.WriteLine("\n已移除的元素:{0}", dequeuedElement);

            // 再次查看队列中的元素
            Console.WriteLine("\n队列中的元素(更新后):");
            foreach (int element in myQueue)
            {
                Console.Write(element + " ");
            }

            // 添加一个新元素到队列
            myQueue.Enqueue(4);

            // 再次查看队列中的元素
            Console.WriteLine("\n队列中的元素(更新后):");
            foreach (int element in myQueue)
            {
                Console.Write(element + " ");
            }
            // 查看队列开头的元素
            Console.WriteLine("\n队列开头的元素:{0}", myQueue.Peek());

            // 清空队列
            myQueue.Clear();

            // 查看队列是否为空
            Console.WriteLine("\n队列是否为空:{0}", myQueue.Count == 0);
        }
    }
}
//运行结果:
/*
队列中的元素:
1 2 3
已移除的元素:1

队列中的元素(更新后):
2 3
队列中的元素(更新后):
2 3 4
队列开头的元素:2

队列是否为空:True

 */
相关推荐
泡海椒9 分钟前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)32 分钟前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_9336707940 分钟前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2331 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山2 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
shmily麻瓜小菜鸡4 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
三克的油4 小时前
java-学习1
java·开发语言·学习
星期八不上发条4 小时前
智能指针是什么?使用场景,循环引用解决办法,面试回答
开发语言·c++·stl
tang_04274 小时前
【Hi.Ltd 专题】第7期:Threading 采集线程、锁与 LRU 缓存
经验分享·c#·hi.ltd系列
OKkankan4 小时前
Python 基础进阶(三):从函数、类到 asyncio 与 FastAPI 后端开发实战
开发语言·python