Queue Kelas

Definisi

Mewakili kumpulan objek pertama masuk dan keluar.

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 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 menerapkan antrean sebagai array melingkar. Objek yang disimpan dalam Queue disisipkan di satu ujung dan dihapus dari ujung lainnya.

Important

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 saat 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 elemennya:

  • Enqueue menambahkan elemen ke akhir Queue.

  • Dequeue menghapus elemen terlama dari awal Queue.

  • Peek mengembalikan elemen terlama yang berada di awal Queue tetapi tidak menghapusnya dari Queue.

Kapasitas adalah Queue jumlah elemen yang dapat ditahan Queue . Saat 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 minimal empat, terlepas dari faktor pertumbuhannya. Misalnya, Queue dengan faktor pertumbuhan 1,0 akan selalu meningkat dalam kapasitas empat ketika kapasitas yang lebih besar diperlukan.

Queue null menerima sebagai nilai yang valid dan memungkinkan elemen duplikat.

Untuk versi generik koleksi ini, lihat System.Collections.Generic.Queue<T>

Konstruktor

Nama Deskripsi
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, Single)

Menginisialisasi instans Queue baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan menggunakan faktor pertumbuhan yang ditentukan.

Queue(Int32)

Menginisialisasi instans Queue baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan menggunakan faktor pertumbuhan default.

Properti

Nama Deskripsi
Count

Mendapatkan jumlah elemen yang terkandung dalam Queue.

IsSynchronized

Mendapatkan nilai yang menunjukkan apakah akses ke Queue disinkronkan (utas aman).

SyncRoot

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke Queue.

Metode

Nama Deskripsi
Clear()

Menghapus semua objek dari Queue.

Clone()

Membuat salinan dangkal dari Queue.

Contains(Object)

Menentukan apakah elemen berada dalam 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 berulang melalui Queue.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Peek()

Mengembalikan objek di awal Queue tanpa menghapusnya.

Synchronized(Queue)

Mengembalikan baru Queue yang membungkus antrean asli, dan aman utas.

ToArray()

Queue Menyalin elemen ke array baru.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TrimToSize()

Mengatur kapasitas ke jumlah elemen aktual dalam Queue.

Metode Ekstensi

Nama Deskripsi
AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi IEnumerable menjadi IQueryable.

Cast<TResult>(IEnumerable)

Melemparkan elemen IEnumerable ke jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen IEnumerable berdasarkan jenis tertentu.

Berlaku untuk

Keamanan Thread

Anggota statis publik (Shared dalam Visual Basic) dari jenis ini aman utas. Setiap anggota instans tidak dijamin aman terhadap 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.

Lihat juga