Queue<T>, FIFO (First In, First Out – İlk Giren İlk Çıkar) prensibiyle çalışan bir koleksiyondur. Yani, ilk eklenen eleman ilk çıkarılır. Bir kuyruk gibi düşünebiliriz; insanlar sırayla bekler ve sıra geldiğinde hizmet alırlar. “T”, kuyruğun içinde tutacağı veri türünü temsil eder.
Kullanım Alanları
- Görevleri sıraya koyma (örneğin, yazdırma görevleri, işlem görevleri)
- Breadth-First Search (BFS) algoritması uygulamaları
- Mesajlaşma sistemlerinde mesaj kuyruğu oluşturma
- Veri işleme hattı (pipeline) oluşturma
Queue<T> Oluşturma ve Eleman Ekleme/Çıkarma
C#
using System;
using System.Collections.Generic;
public class QueueOrnegi
{
public static void Main(string[] args)
{
// Boş bir string kuyruğu oluşturma
Queue<string> gorevler = new Queue<string>();
// Eleman ekleme (Enqueue)
gorevler.Enqueue("Yazıcıya gönder");
gorevler.Enqueue("Veritabanına kaydet");
gorevler.Enqueue("E-posta gönder");
// Eleman çıkarma (Dequeue)
string ilkGorev = gorevler.Dequeue(); // "Yazıcıya gönder" çıkarılır
Console.WriteLine($"İlk görev: {ilkGorev}");
foreach (string gorev in gorevler)
{
Console.WriteLine(gorev);
}
}
}Queue<T>’in Özellikleri
- Count: Kuyruktaki eleman sayısını döndürür.
Queue vs Stack
| Özellik | Queue (Kuyruk) | Stack (Yığın) |
|---|---|---|
| Çalışma Prensibi | FIFO | LIFO |
| Eleman Ekleme | Enqueue | Push |
| Eleman Çıkarma | Dequeue | Pop |
| Kullanım Alanları | Görev sırası, BFS | Geri alma, DFS |
Koleksiyon Seçimi
Hangi koleksiyonu kullanacağınız uygulamanızın gereksinimlerine bağlıdır. Eğer elemanların sırayla işlenmesi gerekiyorsa Queue<T>’yi, son eklenen elemanın ilk işlenmesi gerekiyorsa Stack<T>’yi tercih etmelisiniz.
Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/