Queue Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili kumpulan objek pertama masuk dan keluar pertama.
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
- Warisan
-
Queue
- Atribut
- Penerapan
Contoh
Contoh berikut menunjukkan cara membuat dan menambahkan nilai ke Queue dan cara mencetak nilainya.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection );
int main()
{
// Creates and initializes a new Queue.
Queue^ myQ = gcnew 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 );
}
void PrintValues( IEnumerable^ myCollection )
{
IEnumerator^ myEnum = myCollection->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
myQ
Count: 3
Values: Hello World !
*/
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 !
Keterangan
Kelas ini mengimplementasikan antrean sebagai array melingkar. Objek yang disimpan dalam Queue disisipkan di satu ujung dan dihapus dari ujung lainnya.
Penting
Kami tidak menyarankan Anda menggunakan Queue
kelas untuk pengembangan baru. Sebagai gantinya, kami sarankan Anda menggunakan kelas generik Queue<T> . Untuk informasi selengkapnya, lihat Koleksi non-generik tidak boleh digunakan di GitHub.
Antrean dan tumpukan berguna ketika Anda memerlukan penyimpanan sementara untuk informasi; yaitu, ketika Anda mungkin ingin membuang elemen setelah mengambil nilainya. Gunakan Queue jika Anda perlu mengakses informasi dalam urutan yang sama dengan yang disimpan dalam koleksi. Gunakan Stack jika Anda perlu mengakses informasi dalam urutan terbalik. Gunakan ConcurrentQueue<T> atau ConcurrentStack<T> jika Anda perlu mengakses koleksi dari beberapa utas secara bersamaan.
Tiga operasi utama dapat dilakukan pada dan Queue elemen-elemennya:
Kapasitas adalah Queue jumlah elemen yang dapat ditahan Queue . Karena elemen ditambahkan ke Queue, kapasitas secara otomatis ditingkatkan sesuai kebutuhan melalui realokasi. Kapasitas dapat dikurangi dengan memanggil TrimToSize.
Faktor pertumbuhan adalah jumlah di mana kapasitas saat ini dikalikan ketika kapasitas yang lebih besar diperlukan. Faktor pertumbuhan ditentukan ketika Queue dibangun. Faktor pertumbuhan default adalah 2,0. Kapasitas Queue akan selalu meningkat setidaknya setidaknya empat, terlepas dari faktor pertumbuhannya. Misalnya, Queue dengan faktor pertumbuhan 1,0 akan selalu meningkatkan kapasitas sebesar empat ketika kapasitas yang lebih besar diperlukan.
Queuenull
menerima sebagai nilai yang valid dan memungkinkan elemen duplikat.
Untuk versi generik koleksi ini, lihat System.Collections.Generic.Queue<T>
Konstruktor
Queue() |
Menginisialisasi instans Queue baru kelas yang kosong, memiliki kapasitas awal default, dan menggunakan faktor pertumbuhan default. |
Queue(ICollection) |
Menginisialisasi instans Queue baru kelas yang berisi elemen yang disalin dari koleksi yang ditentukan, memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan menggunakan faktor pertumbuhan default. |
Queue(Int32) |
Menginisialisasi instans Queue baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan menggunakan faktor pertumbuhan default. |
Queue(Int32, Single) |
Menginisialisasi instans Queue baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan menggunakan faktor pertumbuhan yang ditentukan. |
Properti
Count |
Mendapatkan jumlah elemen yang terkandung dalam Queue. |
IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke disinkronkan Queue (utas aman). |
SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke Queue. |
Metode
Clear() |
Menghapus semua objek dari Queue. |
Clone() |
Membuat salinan dangkal dari Queue. |
Contains(Object) |
Menentukan apakah elemen berada di Queue. |
CopyTo(Array, Int32) |
Queue Menyalin elemen ke satu dimensi Arrayyang ada, dimulai pada indeks array yang ditentukan. |
Dequeue() |
Menghapus dan mengembalikan objek di awal Queue. |
Enqueue(Object) |
Menambahkan objek ke akhir Queue. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetEnumerator() |
Mengembalikan enumerator yang melakukan iterasi melalui Queue. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
Peek() |
Mengembalikan objek di awal Queue tanpa menghapusnya. |
Synchronized(Queue) |
Mengembalikan baru Queue yang membungkus antrean asli, dan aman untuk utas. |
ToArray() |
Menyalin elemen ke Queue array baru. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
TrimToSize() |
Mengatur kapasitas ke jumlah elemen aktual di Queue. |
Metode Ekstensi
Cast<TResult>(IEnumerable) |
Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan. |
OfType<TResult>(IEnumerable) |
Memfilter elemen berdasarkan IEnumerable jenis tertentu. |
AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
AsQueryable(IEnumerable) |
Mengonversi menjadi IEnumerableIQueryable. |
Berlaku untuk
Keamanan Thread
Anggota statis publik (Shared
dalam Visual Basic) dari jenis ini aman untuk utas. Setiap anggota instans tidak dijamin aman untuk utas.
Untuk menjamin keamanan Queueutas , semua operasi harus dilakukan melalui pembungkus yang dikembalikan oleh Synchronized(Queue) metode .
Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Bahkan ketika koleksi disinkronkan, utas lain masih dapat memodifikasi koleksi, yang menyebabkan enumerator melemparkan pengecualian. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi atau menangkap pengecualian yang dihasilkan dari perubahan yang dibuat oleh utas lain.