Collection Sınıf Kavramı ve Arraylist Sınıfı

Collection Sınıf Kavramı
Görevi birden fazla nesneyi belirli bir algoritmik yapı içerisinde tutarak istenildiğinde geri vermek olan, özel sınıflara Collection sınıflar denilmektedir.

C++’ da bu tür sınıflara Container sınıflar da denilmektedir.

ArrayList Sınıfı
Pek çok uygulamada bir dizinin dinamik olarak büyütülmesi gerekir. Örneğin kullanıcının yaptığı çizimleri bir dizide saklayacaksak, çizim yapıldıkça dizinin büyütülmesi gerekir. Örneğin, bir porttan gelen bilgileri bir dizide biriktireceksek, dizinin yine dinamik olarak büyütülmesi gerekir. Oysa C#’ daki diziler yaratıldıktan sonra bir daha büyütülüp, küçültülemezler. Diziyi büyütmek için C#’ da önce yeni bir dizi tahsis etmek, sonra eski diziden yeni diziye kopyalama yapmak ve işlemlere yeni diziden devam etmek gerekir. Buda sıkıcı bir işlemdir. Arraylist sınıfı bu sıkıcı işlemi bizim için yapmaktadır.

Arraylist sınıfının kendi içerisinde object türünden bir dizi vardır. Sınıfın Add isimli methodu bizden bir object alır, aldığı bu bilgiyi dizinin sonuna ekler. Tabi dizi sınıfın içerisinde gerekildiğinde büyütülmektedir. Arraylist sınıfının “Capacity” ve “Count” isimli iki protperty elemanı vardır. Capacity o anda içeride tutulan dizinin gerçek uzunluğunu belirtmektedir. Count içerideki dizinin sonunu göstermektedir. Add methoduyla yada diğer methodlarla eleman eklendiğinde eleman Count ile belirtilen indexe eklenir. Count değeri bir arttırılır. Count değeri Capacity değerine eşitlendiğinde Capacity değeri iki kat arttırılarak yeni bir dizi tayin edilir ve eski diziden yeni diziye kopyalama yapılır. Array sınıfı System.Collections sınıfı içindedir. Sınıfın Add methodunun parametrik yapısı şöyledi;

Görüldüğü gibi methodun parametresi object türündendir. Yani bu methoda biz her türden parametre geçebiliriz. Methodun geri dönüş değeri eklemenin yapıldığı indekstir. Arraylist sınıfının object türünden bir indeksleyicisi vardır. Bu nedenle biz Arraylist içerisindeki herhangi bir elemanı Köşeli parantez ( [] ) türüyle alabiliriz. Tabi [] operatörü bize o indeks deki değeri object olarak verir.

Örneğin:

ArrayList sınıfının aşağıdaki insert methodu belirli bir değeri belirli bir indexde olacak şekilde insert eder.

public virtual void Insert(int index, object value)

ArrayList sınıfı IEnumerable arayüzünü desteklediği için foreach deyimiyle kullanılabilir.

ArrayList sınıfının RemoveAt isimli methodu belirli bir indexteki elemanı silmek için kullanılır.

Şüphesiz ArrayList sınıfında Count için sınır taşması yaratılacak bir index kullanılırsa Exception oluşur.

Kaynak:Kaan Aslan Hocanın Dersinde Tuttuğum Ders Notlarıdır.

Leave a Reply

Site Footer