Dinamik dizi;Boyutu sabit olmayan, değişebilen dizi demektir. Dinamik diziye elemanlar eklenebilir, diziden elemanlar silinebilir; dizinin boyutu azaltılabilir ve arttırılabilir. Bazı programlama dillerinde vektör adı ile bilinir.
Dinamik dizilerde bazı kısıtlamalar vardır. Bu kısıtlamaların en başında da dizilerin boyutları gelmektedir. Dizinin boyutu dizi tanımlanırken belirlenir ve program çalışırken daralttırılıp-genişletilemezler. Dizilerde sıkça karşılaşılan bu kısıtlamalar ArrayList sınıfı ile çözümlenir. Öncelikle ArrayList ne demek buna bakalım. ArrayList; Eleman sayısı ihtiyacımıza göre değişen bir veri yapısıdır. ArrayList sınırları dinamik olarak değişebilen diziler olarak tanımlanır. Bu veri yapısı .NET sınıf kütüphanesinin System.Collections isim alanında bulunur. ArrayList yapısının dinamik boyut dışında bize sunduğu bir diğer avantaj ise bir dizi içerisinde saklanacak olan verilerin tür sınırlamasını ortadan kaldırmasıdır. Yani bir dizi içerisinde hem string türünden, hem int türünden, hem char türünden, hem de boot türünden veriler saklamak mümkündür.
ArrayList ile dinamik bir dizi şu şekilde tanımlanır;
ArrayList diziAdi = new ArrayList();
ArrayList’leri örneklerimizde kullanmadan önce sizlere ArrayList’ler ile sıkça kullandığımız bazı metotlardan ve özelliklerden bahsetmemizde fayda olacaktır.
Özellikler:
Capacitiy: ArrayList’in kapasitesini int türünde verir.
Count: ArrayList içerisindeki eleman sayısını int türünde verir.
Metotlar:
Add: Bir nesneyi ArrayList’in sonuna eklemeye yarar.
Insert: Belirtilen indeks pozisyonuna nesneyi eklemeye yarar.
Remove: Belirtilen nesne ArrayList içerisinde varsa siler.
RemoveAt: İndeks değeriyle belirtilen pozisyondaki elemanı siler.
Sort: ArrayList içerisindeki elemanları sıralar.
Şimdi bu özelliklerin ve metotların kullanışlarına bakalım.
Capatitiy Özelliği; ArrayList’in kapasitesini int türünde veren özelliktir.
Kullanımı: int kapasite=liste.Capacity;
Count Özelliği: ArrayList içerisinde bulunana eleman sayısını int türünde veren özelliktir.
Kullanımı: int elemanSayisi=liste.Count;
Add Metodu: Bir nesneyi ArrayList’in sonuna eklemeye yarar.
Kullanımı: ArrayList liste=new ArrayList();
liste.Add(123); //int türünde değer ekleme
liste.Add(“Tevfik”); //string türünde değer ekleme
liste.Add(‘H’); //char türünde değer ekleme
liste.Add(true); //bool türünde değer ekleme
liste.Add(3.14d); //double türünde değer ekleme
liste.Add(3.666f); //float türünde değer ekleme
Örnek ; Klavyeden girilen dizi boyutu kadar sayı girişi sağlayan ve bu sayıları küçükten büyüğe sıralayıp ekrana yazdıran programın kodlarını yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
class Program { static void Main(string[] args) { int boyut; Console.Write("Dizi boyutunu giriniz = "); boyut = int.Parse(Console.ReadLine()); int[] sayilar = new int[boyut]; for (int i = 0; i < sayilar.Length; i++) { Console.Write("Sayı giriniz = "); sayilar[i] = int.Parse(Console.ReadLine()); } Array.Sort(sayilar); foreach (int i in sayilar) { Console.WriteLine("{0}", i); } Console.ReadKey(); } } } |
benimde yaramadı array list olusturamdım
İşime yaradı