C#队列Queue用法实例分析
作者:永远爱好写程序 发布时间:2023-02-27 22:35:14
标签:C#,队列,Queue
本文实例分析了C#队列Queue用法。分享给大家供大家参考。具体分析如下:
队列(Queue)在程序设计中扮演着重要的角色,因为它可以模拟队列的数据操作。例如,排队买票就是一个队列操作,后来的人排在后面,先来的人排在前面,并且买票请求先被处理。为了模拟队列的操作,Queue在ArrayList的基础上加入了以下限制
1.元素采用先入先出机制(FIFO,First In First Out),即先进入队列的元素必须先离开队列。最先进入的元素称为队头元素。
元素只能被添加到队尾(称为入队),不允许在中间的某个位置插入。也就是说,不支持ArrayList中的Insert方法
2.只有队头的元素才能被删除(称为出队),不允许直接对队列中的非队头元素进行删除,从而保证FIFO机制。也就是说,不支持ArrayList中的Remove方法。
3.不允许直接对队列中非队头元素进行访问。也就是说,不支持ArrayList中的索引访问,只允许遍历访问
注意:
Queue.Enqueue (object):向Queue中入队一个对象元素。
Queue.Dequeue ():从Queue中出队一个对象元素,并将此元素返回。
举例:
private void button_测试Queue_Click(object sender, EventArgs e)
{
string[] cars = new string[]{"宝马","奔驰","奥迪","东风","劳斯莱斯"};
Console.WriteLine("开始入队列");
Queue<string> que = new Queue<string>();
foreach (string str in cars)
{
que.Enqueue(str);
Console.WriteLine("入队列-{0}",str);
}
Console.WriteLine();
//打印队列
PrintQueue(que);
Console.WriteLine();
Console.WriteLine("开始出队列");
while (que.Count > 0)
{
string str = que.Dequeue();
Console.WriteLine("出队列-{0}", str);
}
}
private void PrintQueue(Queue<string> list)
{
Console.WriteLine("开始打印队列");
foreach (string str in list)
{
Console.WriteLine(str);
}
}
运行结果如下图所示:
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- response.setHeader设置下载文件名无效response.setContentType("application/o
- 下面是一段大家都比较熟悉的代码:Handler handler = new Handler(); handler.post(myThread
- 目录一、SpringMvc框架简介1、Mvc设计理念2、SpringMvc简介二、SpringMvc执行流程1、流程图解2、步骤描述3、核心
- 实例如下:一 json optString 解析的TimesTamp string二 long dateSec = (long) (Doub
- C#实体类转换方式将一个实体类的数据赋值到另一个实体类中(亦或者实现深拷贝)。以下提供两种方式一种是序列化一种是泛型+反射实现功能两个实体类
- 有很多同学肯定想学习opencv相关的知识,但是有些情况下每建一次项目都要重新引入下各种文件是不是很苦恼,所以我也面临了这个问题,在网上看到
- String.indexOf的模拟实现,没想象中有多么高深的查找算法,就是最普通的遍历查找思路:先找到第一个相同的字符,然后依次比较后面的字
- 1. 新建项目引入web和security包完整的pom.xml文件如下<?xml version="1.0" e
- 初学Android编程,Android SDK中提供的Sample代码自然是最好的学习材料。 
- 问题org.apache.ibatis.binding.BindingException: Invalid bound statement
- 一、进程与线程的概念(1)在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。在未配置 OS 的系统中,程序的
- 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,
- 我们都知道取消标题栏有两种方式,一种是在Java代码中取消,另一种通过设置styles.xml文件中的Theme即可;如下图:第一种:第二种
- 1.map遍历快速实现边距,文字自适应改变大小Container( // padding: EdgeI
- 这篇文章主要介绍了Java数据封装树形结构代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- view plaincopy to clipboardprint?//手动保存图片 &nbs
- 在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我
- 本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下package com.amos.tools;import java.
- 概述LinearLayout是线性布局组件,放置在其中的组件按列或者按行(就是垂直或者水平)的方式排序分布。常用XML配置属性(1)&nbs
- 一、volatile作用可以保证多线程环境下共享变量的可见性通过增加内存屏障防止多个指令之间的重排序二、什么是可见性可见性是指当一个线程对于