当前位置: 首页 > news >正文

C# Queue 队列

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);}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【RabbitMQ】高级特性
  • Linux: 忘记密码的解决方法,passwd
  • ROUTE_STATUS
  • C# 一个队列两个线程,一个线程入,一个线程出,数据不一致的原因
  • centos 服务器之间实现免密登录
  • CSS的层叠和继承
  • C#学习之路day1
  • 【Python进阶】学习Python必备的练习题,学会这些,说明你对Python已经基本了解了!!!
  • Node.js 安装教程
  • 认证授权 - OAuth 2.0
  • 力扣221题详解:最大正方形的多种解法与模拟面试问答
  • 七牛云 CDN 视频瘦身,为视频分发「减负增效」
  • 路径规划 | 灰狼算法+B样条曲线优化无人机三维路径规划(Matlab)
  • 【C++】深入解析C/C++内存管理:new与delete的使用及原理
  • Leetcode每日刷题之1004.最大连续1的个数|||(C++)
  • 30天自制操作系统-2
  • Angular 4.x 动态创建组件
  • css选择器
  • Git的一些常用操作
  • laravel5.5 视图共享数据
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • node-glob通配符
  • Sass 快速入门教程
  • Spring Cloud Feign的两种使用姿势
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 力扣(LeetCode)22
  • 小程序 setData 学问多
  • ​比特币大跌的 2 个原因
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (26)4.7 字符函数和字符串函数
  • (k8s中)docker netty OOM问题记录
  • (poj1.2.1)1970(筛选法模拟)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (每日一问)基础知识:堆与栈的区别
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)Controller接口控制器详解(三)
  • (四)事件系统
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core Swagger 过滤部分Api
  • .net dataexcel winform控件 更新 日志
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net程序集学习心得
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /usr/bin/env: node: No such file or directory
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @RequestMapping 的作用是什么?