首页 > 代码库 > c# Queue
c# Queue
1、Queue定义
System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。
2、优点
1、能对集合进行顺序处理(先进先出)。
2、能接受null值,并且允许重复的元素。
3、 Queue的构造器
构造器函数 |
注释 |
Queue () |
初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。 |
Queue (ICollection) |
初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。 |
Queue (Int32) |
初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。 |
Queue (Int32, Single) |
初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。 |
4、Queue的属性
属性名 |
注释 |
Count |
获取 Queue 中包含的元素数。 |
5. Queue的方法
方法名 |
注释 |
Void Clear() |
从 Queue 中移除所有对象。 |
Bool Contains(object obj) |
确定某元素是否在 Queue 中。 |
Object Clone() |
创建 Queue 的浅表副本。 |
Void CopyTo(Array array,int index) |
从指定数组索引开始将 Queue 元素复制到现有一维 Array 中。 |
Object Dequeue() |
移除并返回位于 Queue 开始处的对象。 在队列的头部读取和删除一个元素,注意,这里读取元素的同时也删除了这个元素。如果队列中不再有任何元素。就抛出异常 |
Void Enqueue(object obj) |
将对象添加到 Queue 的结尾处。 |
Object Peek() |
返回位于 Queue 开始处的对象但不将其移除。 |
Object[]ToArray() |
将 Queue 元素复制到新数组。 |
Void TrimToSize() |
将容量设置为 Queue 中元素的实际数目。 重新设置队列的容量,因为调用Dequeue方法读取删除元素后不会重新设置队列的容量。 |
6、Queue的使用示例
class
Program
{
static
void
Main(
string
[] args)
{
//创建一个队列
Queue myQ =
new
Queue();
myQ.Enqueue(
"The"
);
//入队
myQ.Enqueue(
"quick"
);
myQ.Enqueue(
"brown"
);
myQ.Enqueue(
"fox"
);
myQ.Enqueue(
null
);
//添加null
myQ.Enqueue(
"fox"
);
//添加重复的元素
// 打印队列的数量和值
Console.WriteLine(
"myQ"
);
Console.WriteLine(
"\tCount: {0}"
, myQ.Count);
// 打印队列中的所有值
Console.Write(
"Queue values:"
);
PrintValues(myQ);
// 打印队列中的第一个元素,并移除
Console.WriteLine(
"(Dequeue)\t{0}"
, myQ.Dequeue());
// 打印队列中的所有值
Console.Write(
"Queue values:"
);
PrintValues(myQ);
// 打印队列中的第一个元素,并移除
Console.WriteLine(
"(Dequeue)\t{0}"
, myQ.Dequeue());
// 打印队列中的所有值
Console.Write(
"Queue values:"
);
PrintValues(myQ);
// 打印队列中的第一个元素
Console.WriteLine(
"(Peek) \t{0}"
, myQ.Peek());
// 打印队列中的所有值
Console.Write(
"Queue values:"
);
PrintValues(myQ);
Console.ReadLine();
}
public
static
void
PrintValues(IEnumerable myCollection)
{
foreach
(Object obj
in
myCollection)
Console.Write(
" {0}"
, obj);
Console.WriteLine();
}
}
7.备注
1、Queue 的容量是 Queue 可以保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将通过重新分配来根据需要自动增大容量。可通过调用 TrimToSize 来减少容量。等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。默认增长因子为 2.0。
2、Queue 能接受空引用作为有效值,并且允许重复的元素。
3、空引用可以作为值添加到 Queue。若要区分空值和 Queue 结尾,请检查 Count 属性或捕捉 Queue 为空时引发的 InvalidOperationException异常。
c# Queue