Queue<>隊列

一、Queue定義html

System.Collections.Queue類表示對象的先進先出集合,存儲在 Queue(隊列) 中的對象在一端插入,從另外一端移除。數組

 

二、優勢函數

一、能對集合進行順序處理(先進先出)。ui

二、能接受null值,而且容許重複的元素。spa

 

三、 Queue的構造器code

構造器函數htm

註釋對象

Queue ()blog

初始化 Queue 類的新實例,該實例爲空,具備默認初始容量(32)並使用默認增加因子(2.0)。索引

Queue (ICollection)

初始化 Queue 類的新實例,該實例包含從指定集合複製的元素,具備與所複製的元素數相同的初始容量並使用默認增加因子。

Queue (Int32)

初始化 Queue 類的新實例,該實例爲空,具備指定的初始容量並使用默認增加因子。

Queue (Int32, Single)

初始化 Queue 類的新實例,該實例爲空,具備指定的初始容量並使用指定的增加因子。

 

四、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 中元素的實際數目。

 

六、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.備註

一、Queue 的容量是 Queue 能夠保存的元素數。Queue 的默認初始容量爲 32。向 Queue 添加元素時,將經過從新分配來根據須要自動增大容量。可經過調用 TrimToSize 來減小容量。等比因子是當須要更大容量時當前容量要乘以的數字。在構造 Queue 時肯定增加因子。默認增加因子爲 2.0。

二、Queue 能接受空引用做爲有效值,而且容許重複的元素。

三、空引用能夠做爲值添加到 Queue。若要區分空值和 Queue 結尾,請檢查 Count 屬性或捕捉 Queue 爲空時引起的 InvalidOperationException異常。

相關文章
相關標籤/搜索