Queue Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Nesnelerin ilk gelen, ilk çıkan koleksiyonunu temsil eder.
public ref class Queue : System::Collections::ICollection
public ref class Queue : ICloneable, System::Collections::ICollection
public class Queue : System.Collections.ICollection
public class Queue : ICloneable, 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
type Queue = class
interface ICollection
interface IEnumerable
type Queue = class
interface ICollection
interface IEnumerable
interface ICloneable
[<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
Public Class Queue
Implements ICollection
Public Class Queue
Implements ICloneable, ICollection
- Devralma
-
Queue
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örnekte, 'a değerlerin Queue nasıl oluşturulacağı ve ekleneceği ve değerlerinin nasıl yazdırılacağını gösterilmektedir.
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 !
Açıklamalar
Bu sınıf bir kuyruğu döngüsel dizi olarak uygular. içinde depolanan nesneler bir Queue uca eklenir ve diğerinden kaldırılır.
Important
Sınıfını yeni geliştirme için kullanmanızı Queue önermiyoruz. Bunun yerine genel Queue<T> sınıfı kullanmanızı öneririz. Daha fazla bilgi için bkz. GitHub'da genel olmayan koleksiyonlar kullanılmamalıdır .
Bilgi için geçici depolamaya ihtiyacınız olduğunda kuyruklar ve yığınlar yararlıdır; başka bir ifadeyle, değerini aldıktan sonra bir öğeyi atmak isteyebileceğiniz durumlarda. Bilgilere koleksiyonda depolandığı sırada erişmeniz gerekiyorsa kullanın Queue . Bilgilere ters sırada erişmeniz gerekiyorsa kullanın Stack . Koleksiyona aynı anda birden çok iş parçacığından erişmeniz gerekiyorsa veya ConcurrentQueue<T> kullanınConcurrentStack<T>.
ve Queue öğeleri üzerinde üç ana işlem gerçekleştirilebilir:
'nin Queue kapasitesi, barındırabileceği öğelerin Queue sayısıdır. öğesine öğeler eklendikçe Queuekapasite, yeniden ayırma aracılığıyla gerektiği gibi otomatik olarak artırılır. çağrılarak TrimToSizekapasite azaltılabilir.
Büyüme faktörü, daha büyük bir kapasite gerektiğinde geçerli kapasitenin çarpıldığı sayıdır. Büyüme faktörü, oluşturulduğunda belirlenir Queue . Varsayılan büyüme faktörü 2.0'dır. 'nin Queue kapasitesi, büyüme faktöründen bağımsız olarak her zaman en az dört artacaktır. Örneğin, büyüme faktörü 1,0 olan bir Queue , daha büyük bir kapasite gerektiğinde kapasitede her zaman dört artacaktır.
Queue geçerli bir değer olarak kabul eder null ve yinelenen öğelere izin verir.
Bu koleksiyonun genel sürümü için bkz. System.Collections.Generic.Queue<T>
Oluşturucular
| Name | Description |
|---|---|
| Queue() |
Sınıfın Queue boş, varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır ve varsayılan büyüme faktörünü kullanır. |
| Queue(ICollection) |
Sınıfın Queue , belirtilen koleksiyondan kopyalanan öğeleri içeren yeni bir örneğini başlatır, kopyalanan öğe sayısıyla aynı başlangıç kapasitesine sahiptir ve varsayılan büyüme faktörünü kullanır. |
| Queue(Int32, Single) |
Sınıfın Queue boş, belirtilen ilk kapasiteye sahip yeni bir örneğini başlatır ve belirtilen büyüme faktörünü kullanır. |
| Queue(Int32) |
Sınıfın Queue boş, belirtilen başlangıç kapasitesine sahip yeni bir örneğini başlatır ve varsayılan büyüme faktörünü kullanır. |
Özellikler
| Name | Description |
|---|---|
| Count |
içinde Queuebulunan öğe sayısını alır. |
| IsSynchronized |
'a Queue erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli). |
| SyncRoot |
Queueerişimini eşitlemek için kullanılabilecek bir nesnesi alır. |
Yöntemler
| Name | Description |
|---|---|
| Clear() |
içindeki tüm nesneleri Queuekaldırır. |
| Clone() |
öğesinin sığ bir kopyasını Queueoluşturur. |
| Contains(Object) |
Bir öğenin içinde Queueolup olmadığını belirler. |
| CopyTo(Array, Int32) |
Queue Öğeleri, belirtilen dizi dizininden başlayarak var olan bir tek boyutlu Arrayöğesine kopyalar. |
| Dequeue() |
öğesinin başındaki Queuenesnesini kaldırır ve döndürür. |
| Enqueue(Object) |
sonuna bir nesne Queueekler. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetEnumerator() |
aracılığıyla Queueyineleyen bir numaralandırıcı döndürür. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Peek() |
öğesinin başındaki Queue nesneyi kaldırmadan döndürür. |
| Synchronized(Queue) |
Özgün kuyruğu sarmalayan ve iş parçacığı güvenli olan yeni Queue bir döndürür. |
| ToArray() |
Queue Öğeleri yeni bir diziye kopyalar. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| TrimToSize() |
Kapasiteyi içindeki gerçek öğe Queuesayısına ayarlar. |
Uzantı Metotları
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
| AsQueryable(IEnumerable) |
bir IEnumerable öğesine IQueryabledönüştürür. |
| Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe yazar. |
| OfType<TResult>(IEnumerable) |
Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu türün genel statik (Shared Visual Basic'te) üyeleri iş parçacığı güvenlidir. Hiçbir örnek üyesi için iş parçacığı güvenliği garanti edilmez.
öğesinin iş parçacığı güvenliğini Queuegaranti etmek için tüm işlemlerin yöntemi tarafından Synchronized(Queue) döndürülen sarmalayıcı aracılığıyla yapılması gerekir.
Bir koleksiyonda numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.