Eclipse开发平台 Eclipse集成开发环境 Java技术参考 J2EE企业应用项目 J2EE开发框架整合应用
Visual Studio 2008 技术 Visual Studio 2008集成环境 LINQ SQL Server 2008数据库 Silverlight WCF WPF WWF
平台综合 开发平台技术动态 跨平台开发 软件信息技术与商业 国外媒体技术资讯
程讯网下载 精品代码 — J2EE应用下载 精品代码 — ASP.NET应用 常用J2EE开发框架 流行ASP.NET开发框架

搜索
Google
 
最新文章
对“职业生涯及规划”的一些想法与建议
 
Visual Studio 10将会怎样?
 
三十怎么了? 心态最重要!
 
访问Microsoft格式文件的Jakarta-POI API库的.NET版本
 
dashCommerce 3.X如何安装Microsoft SQL Server 2005 Express Edition的高级服务功能
 
.net 2.0运行时提示以下错误:authentication mode=Windows 解决方法如下
 
在浏览器中发贴子时实现自动添加贴子签名档的BHO对象设计
 
C#下用Browser Helper Object对象实现拦截IE浏览器的各项消息的IE插件
 
Build a Managed BHO and Plug into the Browser
 
在C#中用WM_COPYDATA消息来实现进程间通信的详细编码
 
BHO 浏览器辅助对象关联原理、编写流程
 
Oracle8i的卸载
 
Oracle9i图形工具OEM的简介
 
详细介绍整个Oracle9i软件的安装过程
 
C# 面向对象设计模式纵横谈 - 18、Iterator迭代器(行为型模式)
 
 
C# 2.0实用开发 - Queue队列类 - C#初级编程、.NET技术门外汉、基础性概念通俗理解
 
内容摘要 -


全文 -

C# 2.0实用开发 - Queue队列类


Queue,称为队列或环形缓冲区,这是一种采用先进先出结构(FIFO)的数据结构。现实生活中这种结构应用得非常广泛。比如某些公司的货仓管理系统,要求将先生产的货物先出货,后生产的货物后出货。图9.9为这种结构。

 

图9.9  FIFO结构示例

在图9.9中,货物在一边被接收,在另一边被发出,显示了一个典型的队列结构。

 9.3.1  创建队列
为了创建Queue类的实例,需要调用Queue类的构造函数。System.Collections.Queue类提供了4种重载构造函数,如下面的声明代码所示。

//使用默认的容量,Queue为32个元素,默认等比因子Queue为2来构造Queue新实例

public Queue();

//使用实现了ICollection接口的集合作为默认容量,并使用默认等比因子构造Queue

public Queue(ICollection col);

//使用指定的容量和默认的等比因子构造Queue

public Queue(int capacity);

//使用指定的容量和指定的等比因子构造Queue

public Queue(int capacity, float growFactor);

上面的注释中提到了等比因子,Queue中的等比因子是指:当需要扩大容量时,以当前容量乘以等比因子的值来自动增加容量。比如,当前容量是5,如果希望当容量需要扩大时一次性扩大到10,则设等比因子为2,那么下一次再扩大容量时,再以当前容量10乘以2,则为20。以此类推。下面的代码片断演示了如何构造Queue。

//使用默认构造函数构造Queue

Queue qu = new Queue();

//使用实现了ICollection接口的类实例,此处是数组列表,构造Queue

Queue qu2 = new Queue(new string[5] { "队列元素一", "队列元素二", "队列元素三", "队列元素四", "队列元素五" });

//使用初始容量为20个元素来构造Queue

Queue qu3 = new Queue(20);

//使用初始容量为20个元素,等比因子为2来构造Queue

Queue qu4 = new Queue(20, 2);

 9.3.2  元素入队
通过使用Enqueue方法,将指定的对象值添加到队列的尾部。这个方法的声明如下。

public virtual void Enqueue(object obj);

例如,为了添加一些字符串到队列,可用如下的代码示例:

//使用默认构造函数构造Queue

Queue qu = new Queue();

qu.Enqueue("队列元素一");

qu.Enqueue("队列元素二");

qu.Enqueue(null);

也可以向队列中插入一个null,即空值。

 9.3.3  元素出队
元素出队,即移除队列中开始的元素,按先进先出(FIFO)的规则,从前向后移除元素。Queue类提供了Dequeue方法,这个方法的声明如下。

public virtual object Dequeue();

Dequeue返回一个object类型的对象,表示的是第一个被移除的对象。

static void Main(string[] args)

{

    //定义一个Queue类,并初始化5个元素

    Queue qu = new Queue();

    qu.Enqueue("元素一");

    qu.Enqueue("元素二");

    qu.Enqueue("元素三");

    qu.Enqueue("元素四");

    qu.Enqueue("元素五");

    Console.WriteLine("原始队列如下所示。");

    //在控制台窗口中显示队列内容

    DisplayResult(qu);

    //调用Dequeue移除第一个元素

    qu.Dequeue();

    Console.WriteLine("移除第一个元素后");

    DisplayResult(qu);

    qu.Dequeue();

    Console.WriteLine("移除第二个元素

9 7 3 1 2 4 8 :

 
相关内容
查找更多 ◇ C#初级编程、.NET技术门外汉、基础性概念通俗理解