次の方法で共有


Queue.Enqueue メソッド

Queue の末尾にオブジェクトを追加します。

Public Overridable Sub Enqueue( _
   ByVal obj As Object _)
[C#]
public virtual void Enqueue(objectobj);
[C++]
public: virtual void Enqueue(Object* obj);
[JScript]
public function Enqueue(
   obj : Object);

パラメータ

  • obj
    Queue に追加するオブジェクト。値は null 参照 (Visual Basic では Nothing) に設定できます。

解説

Count が既に Queue の容量に等しい場合には、古い要素をコピーし、新しい要素を追加する前に、内部配列を自動的に再割り当てすることによって、容量が増加されます。新しい容量は、現在の容量に、 Queue のコンストラクタを生成するときに決定される増加率を掛け合わせて算出されます。

Count が内部配列の容量よりも小さい場合、このメソッドは O(1) 操作になります。新しい要素を格納できるように内部配列を再割り当てする必要がある場合、このメソッドは O(n) 操作になります。ここで、 nCount です。

使用例

[Visual Basic, C#, C++] Queue に要素を追加する方法、 Queue から要素を削除する方法、または Queue の先頭にある要素を単純に参照する方法の例を次に示します。

 
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

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, ControlChars.Tab)
        
        ' Removes an element from the Queue.
        Console.WriteLine("(Dequeue)" + ControlChars.Tab + "{0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ, ControlChars.Tab)
        
        ' Removes another element from the Queue.
        Console.WriteLine("(Dequeue)" + ControlChars.Tab + "{0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ, ControlChars.Tab)
        
        ' Views the first element in the Queue but does not remove it.
        Console.WriteLine("(Peek)   " + ControlChars.Tab + "{0}", myQ.Peek())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ, ControlChars.Tab)
    End Sub
    
    Public Shared Sub PrintValues(myCollection As IEnumerable, _
       mySeparator As Char)
       
        Dim myEnumerator As System.Collections.IEnumerator = _
           myCollection.GetEnumerator()
        While myEnumerator.MoveNext()
            Console.Write("{0}{1}", mySeparator, myEnumerator.Current)
        End While
        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 

[C#] 
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, '\t' );

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

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ, '\t' );

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

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ, '\t' );

      // 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, '\t' );
   }


   public static void PrintValues( IEnumerable myCollection, char mySeparator )  {
      System.Collections.IEnumerator myEnumerator = myCollection.GetEnumerator();
      while ( myEnumerator.MoveNext() )
         Console.Write( "{0}{1}", mySeparator, myEnumerator.Current );
      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
*/ 

[C++] 
#using <mscorlib.dll>
#using <system.dll>

using namespace System;
using namespace System::Collections;

void PrintValues( IEnumerable* myCollection, Char mySeparator )  {
   System::Collections::IEnumerator* myEnumerator = myCollection->GetEnumerator();
   while ( myEnumerator->MoveNext() )
      Console::Write( "{0}{1}", __box(mySeparator), myEnumerator->Current );
   Console::WriteLine();
}

int main()  {
   // Creates and initializes a new Queue.
   Queue* myQ = new Queue();
   myQ->Enqueue( S"The" );
   myQ->Enqueue( S"quick" );
   myQ->Enqueue( S"brown" );
   myQ->Enqueue( S"fox" );

   // Displays the Queue.
   Console::Write( S"Queue values:" );
   PrintValues( myQ, '\t' );

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

   // Displays the Queue.
   Console::Write( S"Queue values:" );
   PrintValues( myQ, '\t' );

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

   // Displays the Queue.
   Console::Write( S"Queue values:" );
   PrintValues( myQ, '\t' );

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

   // Displays the Queue.
   Console::Write( S"Queue values:" );
   PrintValues( myQ, '\t' );
}

/*
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
*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

Queue クラス | Queue メンバ | System.Collections 名前空間 | Dequeue | Peek