Queue Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en första-i-först-ut-samling med objekt.
public ref class Queue : System::Collections::ICollection
public ref class Queue : ICloneable, System::Collections::ICollection
public class Queue : System.Collections.ICollection
[System.Serializable]
public class Queue : ICloneable, System.Collections.ICollection
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Queue : ICloneable, System.Collections.ICollection
public class Queue : ICloneable, System.Collections.ICollection
type Queue = class
interface ICollection
interface IEnumerable
[<System.Serializable>]
type Queue = class
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Queue = class
interface ICollection
interface IEnumerable
interface ICloneable
type Queue = class
interface ICollection
interface IEnumerable
interface ICloneable
Public Class Queue
Implements ICollection
Public Class Queue
Implements ICloneable, ICollection
- Arv
-
Queue
- Attribut
- Implementeringar
Exempel
I följande exempel visas hur du skapar och lägger till värden i en Queue och hur du skriver ut dess värden.
using System;
using System.Collections;
public class SamplesQueue {
public static void Main() {
// Creates and initializes a new Queue.
Queue myQ = new Queue();
myQ.Enqueue("Hello");
myQ.Enqueue("World");
myQ.Enqueue("!");
// Displays the properties and values of the Queue.
Console.WriteLine( "myQ" );
Console.WriteLine( "\tCount: {0}", myQ.Count );
Console.Write( "\tValues:" );
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.
myQ
Count: 3
Values: Hello World !
*/
Imports System.Collections
Public Class SamplesQueue
Public Shared Sub Main()
' Creates and initializes a new Queue.
Dim myQ As New Queue()
myQ.Enqueue("Hello")
myQ.Enqueue("World")
myQ.Enqueue("!")
' Displays the properties and values of the Queue.
Console.WriteLine("myQ")
Console.WriteLine(" Count: {0}", myQ.Count)
Console.Write(" 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.
'
' myQ
' Count: 3
' Values: Hello World !
Kommentarer
Den här klassen implementerar en kö som en cirkulär matris. Objekt som lagras i en Queue infogas i ena änden och tas bort från den andra.
Important
Vi rekommenderar inte att du använder Queue klassen för ny utveckling. I stället rekommenderar vi att du använder den allmänna Queue<T> klassen. Mer information finns i Non-generic samlingar bör inte användas på GitHub.
Köer och staplar är användbara när du behöver tillfällig lagring för information. när du kanske vill ta bort ett element när du har hämtat dess värde. Använd Queue om du behöver komma åt informationen i samma ordning som den lagras i samlingen. Använd Stack om du behöver komma åt informationen i omvänd ordning. Använd ConcurrentQueue<T> eller ConcurrentStack<T> om du behöver komma åt samlingen från flera trådar samtidigt.
Tre huvudsakliga åtgärder kan utföras på en Queue och dess element:
Kapaciteten för en Queue är antalet element som Queue kan hållas. När element läggs till i en Queueökar kapaciteten automatiskt efter behov genom omallokering. Kapaciteten kan minskas genom att anropa TrimToSize.
Tillväxtfaktorn är det tal med vilket den aktuella kapaciteten multipliceras när en större kapacitet krävs. Tillväxtfaktorn bestäms när är Queue konstruerad. Standardtillväxtfaktorn är 2,0. Kapaciteten för Queue kommer alltid att öka med minst fyra, oavsett tillväxtfaktor. Till exempel ökar en Queue med en tillväxtfaktor på 1,0 alltid i kapacitet med fyra när en större kapacitet krävs.
Queue
null accepterar som ett giltigt värde och tillåter duplicerade element.
Den allmänna versionen av den här samlingen finns i System.Collections.Generic.Queue<T>
Konstruktorer
| Name | Description |
|---|---|
| Queue() |
Initierar en ny instans av Queue klassen som är tom, har standardinitieringskapaciteten och använder standardtillväxtfaktorn. |
| Queue(ICollection) |
Initierar en ny instans av Queue klassen som innehåller element som kopierats från den angivna samlingen, har samma initiala kapacitet som antalet kopierade element och använder standardtillväxtfaktorn. |
| Queue(Int32, Single) |
Initierar en ny instans av Queue klassen som är tom, har den angivna initiala kapaciteten och använder den angivna tillväxtfaktorn. |
| Queue(Int32) |
Initierar en ny instans av Queue klassen som är tom, har den angivna initiala kapaciteten och använder standardtillväxtfaktorn. |
Egenskaper
| Name | Description |
|---|---|
| Count |
Hämtar antalet element som finns i Queue. |
| IsSynchronized |
Hämtar ett värde som anger om åtkomsten Queue till är synkroniserad (trådsäker). |
| SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten Queuetill . |
Metoder
| Name | Description |
|---|---|
| Clear() |
Tar bort alla objekt från Queue. |
| Clone() |
Skapar en ytlig kopia av Queue. |
| Contains(Object) |
Avgör om ett element finns i Queue. |
| CopyTo(Array, Int32) |
Kopierar elementen Queue till ett befintligt endimensionellt Array, med början vid det angivna matrisindexet. |
| Dequeue() |
Tar bort och returnerar objektet i början av Queue. |
| Enqueue(Object) |
Lägger till ett objekt i slutet av Queue. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetEnumerator() |
Returnerar en uppräkning som itererar genom Queue. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Peek() |
Returnerar objektet i början av utan att Queue ta bort det. |
| Synchronized(Queue) |
Returnerar en ny Queue som omsluter den ursprungliga kön och är trådsäker. |
| ToArray() |
Kopierar elementen Queue till en ny matris. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TrimToSize() |
Anger kapaciteten till det faktiska antalet element i Queue. |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |
Gäller för
Trådsäkerhet
Offentliga statiska (Shared i Visual Basic) medlemmar av den här typen är trådsäkra. Vilka som helst instansmedlemmar garanteras inte att vara trådsäkra.
För att garantera trådsäkerheten för Queuemåste alla åtgärder utföras via omslutningen som returneras av Synchronized(Queue) metoden.
Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.