İnfografik
← Ünite 13
Nesne Tabanlı Programlama 1

Ünite 13: Koleksiyonlar 2

System.Collections.Generic
Tüm generic koleksiyon sınıflarının (List, Stack, Queue, LinkedList, Dictionary) içerisinde tanımlandığı temel isim uzayıdır. Bu isim uzayı kullanılmadan ilgili sınıflara erişim sağlanamaz.
Silikon Vadisi Mülakatları
Silikon Vadisi'ndeki bilişim şirketleri, işe alım mülakatlarında adayların veri yönetimi becerilerini ölçmek için bu ünitede anlatılan koleksiyon yapılarının kullanımına yönelik sorular sormaktadır.
Stack LIFO Örneği
20 adet kitabın üst üste dizilmesi, LIFO yönteminin en somut örneğidir. En son konulan kitap en üstte olduğu için, yığından ilk o kitap alınır.
Dictionary Anahtar Örneği
Takımlar örneğinde 1903 anahtarı 'Beşiktaş', 1905 anahtarı 'Galatasaray' değerini temsil eder. Anahtar benzersiz olduğu için 1903 değeri başka bir takım için kullanılamaz.

Anahtar Kavramlar

Generic KoleksiyonBelirli bir veri tipiyle çalışan ve boxing işlemine ihtiyaç duymayan, veri tipi güvenliği sağlayan koleksiyon türüdür. Örnek: List<int> yapısı sadece tam sayıları kabul eder.
BoxingVerilerin object tipine dönüştürülerek saklanması işlemidir. Non-generic koleksiyonlarda performans kaybına yol açar, generic koleksiyonlarda ise bu işlemden kaçınılır.
LIFOLast In First Out (Son Giren İlk Çıkar) prensibidir. Stack sınıfının çalışma mantığıdır; en son eklenen eleman, en üstte yer aldığı için ilk olarak işlenir.
FIFOFirst In First Out (İlk Giren İlk Çıkar) prensibidir. Queue sınıfının çalışma mantığıdır; kuyruğa ilk giren eleman, kuyruktan ilk çıkan elemandır.
EnqueueQueue (kuyruk) yapısına eleman eklemek için kullanılan metottur. Eklenen eleman kuyruğun en sonuna yerleştirilir.
DequeueQueue yapısından eleman silmek ve silinen elemanı geri döndürmek için kullanılan metottur. Kuyruğun başındaki elemanı alır.
PushStack (yığın) yapısına eleman eklemek için kullanılan metottur. Eklenen eleman yığının en üstüne yerleşir.
PopStack yapısından en üstteki elemanı hem okumak hem de yığından tamamen silmek için kullanılan metottur.
PeekStack veya Queue içerisinde en üstte/başta duran elemanı silmeden sadece değerini görüntülemek için kullanılan metottur.
DictionaryAnahtar-değer (key-value) çiftlerini saklayan koleksiyondur. Anahtarlar benzersizdir ve verilere bu anahtarlar üzerinden hızlı erişim sağlanır.

Diğer Önemli Bilgiler

LinkedList Bağlantı Yapısı

Elemanların birbirine link (bağ) ile bağlı olduğu bu yapıda, AddFirst() ile listenin başına, AddLast() ile listenin sonuna ekleme yapılır.

Queue FIFO Uygulaması

Form üzerinde iki ListBox arasında >> ve << butonları ile eleman aktarımı, Queue sınıfının FIFO mantığını görselleştirmek için kullanılan tipik bir uygulamadır.

Sınavda Dikkat Et

  • Generic koleksiyonların boxing işlemi yapmadığını unutmayın; bu, performans soruları için anahtar bilgidir.
  • Stack için LIFO, Queue için FIFO mantığını karıştırmayın; sınavda bu çalışma prensipleri mutlaka sorulur.
  • Pop() ve Peek() arasındaki farka dikkat edin; Pop() elemanı silerken, Peek() silmez.
  • Dictionary yapısında anahtarların benzersiz olduğunu, ancak değerlerin tekrar edebileceğini hatırlayın.
  • List sınıfının ArrayList'in generic karşılığı olduğunu ve boxing yapmadığını aklınızda tutun.