Koleksiyonlar
ArrayList
Diziler gibi indis yapısını kullanır. Ekleme, silme, sıralama, ters çevirme işlemlerde özel yordamlar içerir. Çalışma anında araya eleman ekleme veya aradan eleman silme gibi özellikler tercih edilmesindeki önemli nedenlerdendir. Dinamik bellek ayırma olanağı sağlar. Eklenen elemanlar object türünde saklanmaktadır. Bu nesne ile yapılacak her işlemde boxing ve unboxing işlemleri uygulanması gerektiğinden tercih edilmemektedir.
HashTable
Key-value şeklinde oluşturulur. Temel amaç index tipi ne olursa olsun array’deki elemanlara aynı sürede erişmektir. Elemanlara erişmek için bir anahtar kullanır.Anahtar değer string, integer, double gibi ufak boyutlu nesneler olduğu durumlarda ilgili sözlüğün saklanması için gereken alanda artacaktır ve buna bağlı olarak arama hızında da düşüş yaşanacaktır.
SortedList
Veriler key-value şeklinde tutulmaktadır. Hashtable’dan farklı eklenen verileri alfabetik olarak sıralı bir şekilde tutmasıdır. Veri türü object yani tüm veri türlerini kullanabilirsiniz. Anahtar değiştirilemez ve boş değer içeremez ama value değiştirilebilir ve boş değer içerebilir.
Stack
Son giren ilk çıkar prensibiyle çalışır. Varsayılan olarak 10 elemanlıdır. Veri türü object’dir. Tüm veri türleri kullanılabilir.
Queues
Stack kavramanına çok benzer bir yapıya sahiptir. Temel fark ilk giren ilk çıkar prensibine göre çalışır.
BitArray
Bitlerle işlem yapmak için oluşturulmuştur koleksiyondur. Bu koleksiyonda 1 değerini ifade eden true, 0 değerini ifade eden false değerleri saklanır. BitArray ile bir sayının bitlerine tek tek erişilebilir. Buna ek olarak XOR, AND gibi bitsel işlemler yapılabilir.
Dictionary
İndis numarasının yanı sıra anahtar bir değer verebilmeyi sağlar. Paranteze o nesne ile ilişkilendirilmiş herhangi bir nesneyi parantez içine yazarak erişebilmesini sağlar.
SortedDictionary
İşlev olarak SortedList ile aynı mantığa sahiptir. Farkı çalışma şeklindedir. Verilerin listelenmesinde SortedList daha hızlıyken, düzenleme işlemlerinde SortedDictionary daha hızlıdır fakat bellekte daha fazla yer kaplar.
LinkedList
Bağlantılı listeler, liste içerisindeki sıralamanın her eleman için bir sonraki elemanın referansının saklanması prensibi ile çözüldüğü dizilerdir. Bu yöntem ile araya eleman ekleme, yer değiştirme işlemleri kolay ve hızlı yapılabilir.
StringDictionary
Key-value string olarak tanımlanmış koleksiyonlar için kullanılır. Değerler hashtable içerisinde saklanırlar fakat anahtar değerler hash işlemine tabi tutulmadan önce küçük harfe çevrilirler.
ListDictionary
10 elemana kadar olan koleksiyonlarda hashtable’dan daha hızlı çalışan bir koleksiyondur. 10’dan az elemanlı key-value çifti içeren koleksiyonlar için önerilir.
HybridDictionary
Koleksiyonun eleman sayısına göre ListDictionary veya HashTable olarak davranır.
List
Belirtilmiş türden nesnelerin liste halinde tutulmasını sağlar, Dinamik olarak boyutu ayarlanır; arama, sıralama, değişiklik gibi metotlara sahiptir. ArrayList’den ayıran en önemli özelliği Generic yapıda olmasıdır.
HashSet
List’e benzer bir kullanıma sahip şablon (generic) türden bir sınıftır.Nesnelerin kendileri yerine hash halleri ile çalıştığından diğer koleksiyon sınıflara göre oldukça hızlı çalışmaktadır. Fakat HashSet içerisindeki her eleman yalnızca bir adet bulunabilir ve bundan dolayı add metodu geriye boolean tipinden bir değer döndürür.
SortedSet
Benzersiz nesnelerin sıraları olarak tutulmasını ve silme, ekleme, araya ekleme gibi işlemleri performans kaybının en az olmasını sağlayan, elemanlar üzerinde küme işlemlerinin (birleşim, kesişim, kapsama) yapılabilmesini sağlayan Generic türdür.
OrderedDictionary
Keyleri sıralı bir listeye ihtiyaç olduğunda kullanılmalıdır. Dictionary gibi key-value şeklinde değerler alır.
ConcurrentDictionary
Dictionary sınıfının Thread Safe uyumlu halidir.
Emrah ESER
Nota Yazılım – Yazılım Geliştirici