Queue<T> Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe Queue<T>.
Sobrecargas
Queue<T>() |
Inicializa uma nova instância da classe Queue<T> que está vazia e tem a capacidade inicial padrão. |
Queue<T>(IEnumerable<T>) |
Inicializa uma nova instância da classe Queue<T>, que contém os elementos copiados da coleção especificada e tem capacidade suficiente para acomodar o número de elementos copiados. |
Queue<T>(Int32) |
Inicializa uma nova instância da classe Queue<T> que está vazia e tem a capacidade inicial especificada. |
Exemplos
O exemplo de código a seguir demonstra esse construtor e vários outros métodos da Queue<T> classe genérica. O exemplo de código cria uma fila de cadeias de caracteres com capacidade padrão e usa o Enqueue método para enfileirar cinco cadeias de caracteres. Os elementos da fila são enumerados, o que não altera o estado da fila. O Dequeue método é usado para remover a primeira cadeia de caracteres. O Peek método é usado para examinar o próximo item na fila e, em seguida, o Dequeue método é usado para desemplhá-lo.
O ToArray método é usado para criar uma matriz e copiar os elementos da fila para ela e, em seguida, a matriz é passada para o Queue<T> construtor que usa IEnumerable<T>, criando uma cópia da fila. Os elementos da cópia são exibidos.
Uma matriz com o dobro do tamanho da fila é criada e o CopyTo método é usado para copiar os elementos da matriz começando no meio da matriz. O Queue<T> construtor é usado novamente para criar uma segunda cópia da fila que contém três elementos nulos no início.
O Contains método é usado para mostrar que a cadeia de caracteres "quatro" está na primeira cópia da fila, após a qual o Clear método limpa a cópia e a Count propriedade mostra que a fila está vazia.
using System;
using System.Collections.Generic;
class Example
{
public static void Main()
{
Queue<string> numbers = new Queue<string>();
numbers.Enqueue("one");
numbers.Enqueue("two");
numbers.Enqueue("three");
numbers.Enqueue("four");
numbers.Enqueue("five");
// A queue can be enumerated without disturbing its contents.
foreach( string number in numbers )
{
Console.WriteLine(number);
}
Console.WriteLine("\nDequeuing '{0}'", numbers.Dequeue());
Console.WriteLine("Peek at next item to dequeue: {0}",
numbers.Peek());
Console.WriteLine("Dequeuing '{0}'", numbers.Dequeue());
// Create a copy of the queue, using the ToArray method and the
// constructor that accepts an IEnumerable<T>.
Queue<string> queueCopy = new Queue<string>(numbers.ToArray());
Console.WriteLine("\nContents of the first copy:");
foreach( string number in queueCopy )
{
Console.WriteLine(number);
}
// Create an array twice the size of the queue and copy the
// elements of the queue, starting at the middle of the
// array.
string[] array2 = new string[numbers.Count * 2];
numbers.CopyTo(array2, numbers.Count);
// Create a second queue, using the constructor that accepts an
// IEnumerable(Of T).
Queue<string> queueCopy2 = new Queue<string>(array2);
Console.WriteLine("\nContents of the second copy, with duplicates and nulls:");
foreach( string number in queueCopy2 )
{
Console.WriteLine(number);
}
Console.WriteLine("\nqueueCopy.Contains(\"four\") = {0}",
queueCopy.Contains("four"));
Console.WriteLine("\nqueueCopy.Clear()");
queueCopy.Clear();
Console.WriteLine("\nqueueCopy.Count = {0}", queueCopy.Count);
}
}
/* This code example produces the following output:
one
two
three
four
five
Dequeuing 'one'
Peek at next item to dequeue: two
Dequeuing 'two'
Contents of the first copy:
three
four
five
Contents of the second copy, with duplicates and nulls:
three
four
five
queueCopy.Contains("four") = True
queueCopy.Clear()
queueCopy.Count = 0
*/
open System
open System.Collections.Generic
let numbers = Queue()
numbers.Enqueue "one"
numbers.Enqueue "two"
numbers.Enqueue "three"
numbers.Enqueue "four"
numbers.Enqueue "five"
// A queue can be enumerated without disturbing its contents.
for number in numbers do
printfn $"{number}"
printfn $"\nDequeuing '{numbers.Dequeue()}'"
printfn $"Peek at next item to dequeue: {numbers.Peek()}"
printfn $"Dequeuing '{numbers.Dequeue()}'"
// Create a copy of the queue, using the ToArray method and the
// constructor that accepts an IEnumerable<T>.
let queueCopy = numbers.ToArray() |> Queue
printfn $"\nContents of the first copy:"
for number in queueCopy do
printfn $"{number}"
// Create an array twice the size of the queue and copy the
// elements of the queue, starting at the middle of the
// array.
let array2 = numbers.Count * 2 |> Array.zeroCreate
numbers.CopyTo(array2, numbers.Count)
// Create a second queue, using the constructor that accepts an
// IEnumerable(Of T).
let queueCopy2 = Queue array2
printfn $"\nContents of the second copy, with duplicates and nulls:"
for number in queueCopy2 do
printfn $"{number}"
printfn $"""\nqueueCopy.Contains "four" = {queueCopy.Contains "four"}"""
printfn $"\nqueueCopy.Clear()"
queueCopy.Clear()
printfn $"queueCopy.Count = {queueCopy.Count}"
// This code example produces the following output:
// one
// two
// three
// four
// five
//
// Dequeuing 'one'
// Peek at next item to dequeue: two
// Dequeuing 'two'
//
// Contents of the first copy:
// three
// four
// five
//
// Contents of the second copy, with duplicates and nulls:
//
//
//
// three
// four
// five
//
// queueCopy.Contains "four" = True
//
// queueCopy.Clear()
//
// queueCopy.Count = 0
Imports System.Collections.Generic
Module Example
Sub Main
Dim numbers As New Queue(Of String)
numbers.Enqueue("one")
numbers.Enqueue("two")
numbers.Enqueue("three")
numbers.Enqueue("four")
numbers.Enqueue("five")
' A queue can be enumerated without disturbing its contents.
For Each number As String In numbers
Console.WriteLine(number)
Next
Console.WriteLine(vbLf & "Dequeuing '{0}'", numbers.Dequeue())
Console.WriteLine("Peek at next item to dequeue: {0}", _
numbers.Peek())
Console.WriteLine("Dequeuing '{0}'", numbers.Dequeue())
' Create a copy of the queue, using the ToArray method and the
' constructor that accepts an IEnumerable(Of T).
Dim queueCopy As New Queue(Of String)(numbers.ToArray())
Console.WriteLine(vbLf & "Contents of the first copy:")
For Each number As String In queueCopy
Console.WriteLine(number)
Next
' Create an array twice the size of the queue, compensating
' for the fact that Visual Basic allocates an extra array
' element. Copy the elements of the queue, starting at the
' middle of the array.
Dim array2((numbers.Count * 2) - 1) As String
numbers.CopyTo(array2, numbers.Count)
' Create a second queue, using the constructor that accepts an
' IEnumerable(Of T).
Dim queueCopy2 As New Queue(Of String)(array2)
Console.WriteLine(vbLf & _
"Contents of the second copy, with duplicates and nulls:")
For Each number As String In queueCopy2
Console.WriteLine(number)
Next
Console.WriteLine(vbLf & "queueCopy.Contains(""four"") = {0}", _
queueCopy.Contains("four"))
Console.WriteLine(vbLf & "queueCopy.Clear()")
queueCopy.Clear()
Console.WriteLine(vbLf & "queueCopy.Count = {0}", _
queueCopy.Count)
End Sub
End Module
' This code example produces the following output:
'
'one
'two
'three
'four
'five
'
'Dequeuing 'one'
'Peek at next item to dequeue: two
'
'Dequeuing 'two'
'
'Contents of the copy:
'three
'four
'five
'
'Contents of the second copy, with duplicates and nulls:
'
'
'
'three
'four
'five
'
'queueCopy.Contains("four") = True
'
'queueCopy.Clear()
'
'queueCopy.Count = 0
Queue<T>()
- Origem:
- Queue.cs
- Origem:
- Queue.cs
- Origem:
- Queue.cs
Inicializa uma nova instância da classe Queue<T> que está vazia e tem a capacidade inicial padrão.
public:
Queue();
public Queue ();
Public Sub New ()
Comentários
A capacidade de um Queue<T> é o número de elementos que o Queue<T> pode conter. À medida que os elementos são adicionados a um Queue<T>, a capacidade é automaticamente aumentada conforme exigido pela realocação da matriz interna.
Se o tamanho da coleção puder ser estimado, especificar a capacidade inicial eliminará a necessidade de executar várias operações de redimensionamento ao adicionar elementos ao Queue<T>.
A capacidade pode ser reduzida chamando TrimExcess.
Este construtor é uma operação O(1).
Aplica-se a
Queue<T>(IEnumerable<T>)
- Origem:
- Queue.cs
- Origem:
- Queue.cs
- Origem:
- Queue.cs
Inicializa uma nova instância da classe Queue<T>, que contém os elementos copiados da coleção especificada e tem capacidade suficiente para acomodar o número de elementos copiados.
public:
Queue(System::Collections::Generic::IEnumerable<T> ^ collection);
public Queue (System.Collections.Generic.IEnumerable<T> collection);
new System.Collections.Generic.Queue<'T> : seq<'T> -> System.Collections.Generic.Queue<'T>
Public Sub New (collection As IEnumerable(Of T))
Parâmetros
- collection
- IEnumerable<T>
A coleção cujos elementos são copiados para o novo Queue<T>.
Exceções
collection
é null
.
Comentários
A capacidade de um Queue<T> é o número de elementos que o Queue<T> pode conter. À medida que os elementos são adicionados a um Queue<T>, a capacidade é automaticamente aumentada conforme exigido pela realocação da matriz interna.
Se o tamanho da coleção puder ser estimado, especificar a capacidade inicial eliminará a necessidade de executar várias operações de redimensionamento ao adicionar elementos ao Queue<T>.
A capacidade pode ser reduzida chamando TrimExcess.
Os elementos são copiados para o Queue<T> na mesma ordem em que são lidos pelo IEnumerator<T> da coleção.
Esse construtor é uma operação O(n
), em que n
é o número de elementos em collection
.
Aplica-se a
Queue<T>(Int32)
- Origem:
- Queue.cs
- Origem:
- Queue.cs
- Origem:
- Queue.cs
Inicializa uma nova instância da classe Queue<T> que está vazia e tem a capacidade inicial especificada.
public:
Queue(int capacity);
public Queue (int capacity);
new System.Collections.Generic.Queue<'T> : int -> System.Collections.Generic.Queue<'T>
Public Sub New (capacity As Integer)
Parâmetros
Exceções
capacity
é menor que zero.
Comentários
A capacidade de um Queue<T> é o número de elementos que o Queue<T> pode conter. À medida que os elementos são adicionados a um Queue<T>, a capacidade é automaticamente aumentada conforme exigido pela realocação da matriz interna.
Se o tamanho da coleção puder ser estimado, especificar a capacidade inicial eliminará a necessidade de executar várias operações de redimensionamento ao adicionar elementos ao Queue<T>.
A capacidade pode ser reduzida chamando TrimExcess.
Esse construtor é uma operação O(n
), em que n
é capacity
.