1、Queue定義
System.Collections.Queue類表示對象的先進先出集合,存儲在 Queue(隊列) 中的對象在一端插入,從另一端移除。
2、優點
1、能對集合進行順序處理(先進先出)。
2、能接受null值,並且允許重復的元素。
3、 Queue的構造器
構造器函數 |
注釋 |
初始化 Queue 類的新實例,該實例為空,具有默認初始容量(32)並使用默認增長因子(2.0)。 |
|
初始化 Queue 類的新實例,該實例包含從指定集合復制的元素,具有與所復制的元素數相同的初始容量並使用默認增長因子。 |
|
初始化 Queue 類的新實例,該實例為空,具有指定的初始容量並使用默認增長因子。 |
|
初始化 Queue 類的新實例,該實例為空,具有指定的初始容量並使用指定的增長因子。 |
4、Queue的屬性
屬性名 |
注釋 |
獲取 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 中元素的實際數目。 |
6、Queue的使用示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
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異常。