Üye Girişi Yapınız     


    E-Posta
    

    Şifreniz
    



Şifremi Unuttum


Ana Sayfa Site Hakkında İletişim Ziyaretçi Defteri Döküman İndir Makale Ekle Haber Ekle

     ArrayList Sınıfınında Dizi Kullanılması
     admin     28.04.2014     09:08:01

ArrayList sınıfı System.Collections kütüphanesinin(name space, ad uzayı) bir sınıf olduğu için bu sınıfın kullanılabilmesi için kod sayfanızın üst kısmındaki bölüme using System.Collections; satırının eklenmesi gerekir. Daha önceleri kullandığınız klasik dizilerle ArrayList arasında ciddi farklılıklar vardır. Nedir bu farklılıklar?

Normal dizilerde tanımlandığı yerde eleman sayısı belirtilir ya da eleman sayısı kısmı boş bırakılsada tanımlandığı yerde eleman atama yoluysa eleman sayısı belirtilmiş olurdu. ArrayList dizilerde eleman sayısı belirtilmez. Eleman eklendikçe dizinin kapasitesi otomatik olarak artar. Yani dinamik yapıdadır.

Diğer bir fark ise normal diziler hep aynı türden elemanları tutmak zorunda iken ArrayList sınıfından türetilmiş bir dizi farklı türden elemanları aynı anda barındırabilir. Bu nedenle ArrayList sınıfında tanımlı bir dizinin elemanlarına nesne(Object) diyebiliriz.



İki önemli özelliği vardır. Count ve Capasity.

Count : Dizideki nesne sayısısını int türünde verir.

Capasity : Dizinin maksimumm saklayabileceği nesne sayısını verir.

Kullanılan Metotlar ise şunlardır.

Add : Dizinin sonuna nesne ekler.

Insert : Belirtilen indeks konumuna nesne ekler. Burada hata vermemesi için eklenmek istenen bir önceki indekste mutlaka nesne olması gerekir.

Remove : Belirtilen nesneyi siler. Eğer eleman dizide yoksa hata vermez.

RemoveAt : Belirtilen indeksteki nesneyi siler. Eğer o indekste nesne yoksa hata verir.

Sort : Aynı veri türünden dizi nesnelerini küçükten büyüğe ya da A’dan Z’ye sıralar. Sıralama işleminin olması için dizideki nesnelerin aynı türden olması gerekir. Aksi durumda hata verecektir.

Karşılaşılan hataların programınızın çalışmasını etkilememesi için Try...Catch yapısı ile hata kontrolü yapmanızda fayda var.

Aşağıda ArrayList sınıfı ile ilgili özellik ve metotların kullanıldığı açıklamalı bir örnek verilmiştir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
 
namespace ArrayList01
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList dizi = new ArrayList();
            dizi.Add("Doğan");//String eklendi
            dizi.Add(100);//int eklendi
            dizi.Add(’E’);//char eklendi
            dizi.Add(3.14);//float eklendi
            dizi.Add(true);//boolean eklendi
            dizi.Insert(5, "Ayhan");//5.indexse ekler
            dizi.Insert(0, "Asım");//0.indekse ekler
            dizi.Remove(3.14);//3.14 nesnesini siler. Olmayan bir eleman silinmye çalışılırsa hata vermez.
            dizi.RemoveAt(5);//5.indexsteki nesneyi siler. 
            //ReomoveAt ile eleman atanmamış bir indeksteki elemanı silemeye çalışırsanız hata verir.
 
            int kapasite = dizi.Capacity;//Dizinin kapasitesi
            int elsay = dizi.Count;//Dizinin eleman sayısı
            Console.WriteLine("Kapasite=" + kapasite);
            Console.WriteLine("Eleman Sayısı=" + elsay);
 
            Console.WriteLine("Dizinin Elemanları\n______________");
            foreach (object x in dizi)//ArrayList sınıfında tanımlı bir
                //dizinin tüm elemanları nesne(object)’dir.
            {
                Console.WriteLine(x);
            }
                             
            Console.WriteLine("Sıralama işleminden ÖNCE dizi:");
            foreach (object x in dizi)
                Console.WriteLine(x);
            
            Console.WriteLine("Sıralama işleminden SONRA dizi:");
            dizi.Sort();//Burada hata verecektir. Çünkü sıralama yapılabilmesi için diziye
            //aynı türden verilerin girilmiş olması gerekir.
            foreach (object x in dizi)
                Console.WriteLine(x);
            Console.ReadKey();
        }
    }
}

Facebook'ta Paylaş    
Diğer C İçerikleri       Tüm Yazılar        Ana Sayfa


  =>Soru Sorun veya Yorum Yazın...

İsim Giriniz :
  

  =>Yapılan Yorumlar...