Queue.Enqueue(Object) 方法

定義

將物件加入至 Queue的結尾。

public:
 virtual void Enqueue(System::Object ^ obj);
public virtual void Enqueue(object obj);
public virtual void Enqueue(object? obj);
abstract member Enqueue : obj -> unit
override this.Enqueue : obj -> unit
Public Overridable Sub Enqueue (obj As Object)

參數

obj
Object

要加入 Queue的物件。 其值可以是 null

範例

以下範例展示了如何將元素加入 Queue,移除元素, Queue或檢視 中開頭 Queue的元素。

using System;
using System.Collections;
public class SamplesQueue  {

   public static void Main()  {

      // Creates and initializes a new Queue.
      Queue myQ = new Queue();
      myQ.Enqueue( "The" );
      myQ.Enqueue( "quick" );
      myQ.Enqueue( "brown" );
      myQ.Enqueue( "fox" );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes an element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes another element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Views the first element in the Queue but does not remove it.
      Console.WriteLine( "(Peek)   \t{0}", myQ.Peek() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );
   }

   public static void PrintValues( IEnumerable myCollection )  {
      foreach ( Object obj in myCollection )
         Console.Write( "    {0}", obj );
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Queue values:    The    quick    brown    fox
(Dequeue)       The
Queue values:    quick    brown    fox
(Dequeue)       quick
Queue values:    brown    fox
(Peek)          brown
Queue values:    brown    fox

*/
Imports System.Collections

Public Class SamplesQueue
    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Queue.
        Dim myQ As New Queue()
        myQ.Enqueue("The")
        myQ.Enqueue("quick")
        myQ.Enqueue("brown")
        myQ.Enqueue("fox")
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes an element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes another element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Views the first element in the Queue but does not remove it.
        Console.WriteLine("(Peek)       {0}", myQ.Peek())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("    {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Queue values:    The    quick    brown    fox
' (Dequeue)    The
' Queue values:    quick    brown    fox
' (Dequeue)    quick
' Queue values:    brown    fox
' (Peek)       brown
' Queue values:    brown    fox

備註

a Queue 的容量是它 Queue 能容納的元素數量。 當元素新增至 Queue時,容量會視需要透過重新配置自動增加。 可透過呼叫 TrimToSize來減少容量。

成長因子是指當需要更大容量時,將現有容量乘以的數字。 生長因子是在構造時決定 Queue 的。 無論成長因子為何,容量 Queue 都會以最小值增加;成長因子為1.0也不會阻止其 Queue 體積增加。

Count 小於內部陣列容量,此方法即為 O(1) 運算。 若內部陣列需重新配置以容納新元素,此方法即為 O(n) 操作,其中 nCount

適用於

另請參閱