ArrayList, klasik dizilerle çalışırken karşılaştığımız bir çok sorunu ortadan kaldıran yeni bir koleksşyon sınıfıdır. Klasik dizilerde çalışırken dizinin boyutunun derleme aşamasında bilinme zorunluluğu vardır. Fakat ArrayList kullanıldığında bu kısıtlama ortadan kalkar. Çalışma zamanında koleksiyona istediğimiz gibi yeni nesneler ekleyebiliriz yada çıkarabiliriz. Bunun haricinde klasik diziler aynı tür elemanları içeren koleksiyonlardır. ArrayList ile farklı türden nesneleri aynı koleksiyonda saklayabiliriz.
C# dilinde yazılmış daha fazla örnek ve konular için C# Dersleri yazısını da incelemenizi tavsiye ederim. Ayrıca yazılmış diğer örnek ve uygulamalara sağ üstte bulunan site içinde ara ile göz atabilirisiniz.
1 2 3 |
ArrayList liste = new ArrayList(); |
Komutu ile varsayılan kapasitede bir ArrayList nesnesi oluşturulur. Bu varsayılan kapasite 16 elemandır. Çalışma zamanında bu kapasite aşılırsa dizinin kapasitesi otomatik olarak arttırılır.
Bir ArrayList sınıfının kapasitesi arttırılacağı zaman kapasite 2 katına çıkartılır.Böylece her eleman eklendiğinde kapasite arttırma gibi ek bir işlem yapılmaz.
Bir dizinin herhangi bir andaki kapasitesini öğrenmek için Arraylist sınıfının Capacity özelliği kullanılabilir.
ArrayList kullanılacaksa uygulamaya ;
“using System.Collection” isim alanı eklenmelidir.
Aşağıdaki örneği inceleyelim.
Formumuzu yukarıdaki şekilde oluşturalım. Daha sonra;
1 2 3 |
using System.Collection; |
ekleyelim.
Button_Click olayına aşağıdaki kodları ekleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
private void button1_Click(object sender, EventArgs e) { ArrayList liste = new ArrayList(); // Arraylist eleman ekleme liste.Add(35); liste.Add("www.yazilimkodlama.com"); liste.Add('B'); liste.Add(false); // Arraylistten eleman çıkarma liste.Remove('B'); foreach (object i in liste) { listBox1.Items.Add(i); } } |
yazıp programı çalıştırdığımızda aşağıdaki görüntüyü elde ederiz.
Arraylist kullanımıyla ilgili diğer örneğimize bakalım.
Bu örneğimizde kullanıcının textbox’a girdiği adet kadar elemanı olan bir liste oluşturup, Bu Arraylist elemanlarını Listbox’ta görüntüleyeceğiz. Arraylist’ te önceden eleman sayısı tanımlamaya gerek olmadığından dizi kullanımındaki bu dezavantajla karşılaşmayacağımızı belirtelim.
1 2 3 |
using System.Collections; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); ArrayList liste = new ArrayList(); Random rnd=new Random(); int adet = Convert.ToInt32(textBox1.Text); for(int i=1;i<=adet;i++) { liste.Add(rnd.Next(0, 100)); } foreach(int eleman in liste) { listBox1.Items.Add(eleman); } } |