Arraylist, dinamik olarak büyüyüp küçülen, farklı değişken türlerini ve nesneleri depolayabilen koleksiyon tabanlı bir sınıftır. Diziler programlamada çok yararlı olmasına rağmen, bazı özellikleri birçok sorunu da beraberinde getirir. İşte Arraylist, dizilerin eksiklerini gidermek ve kısıtlamalarını ortadan kaldırmak için oluşturulmuş bir sınıftır.
Dizi ve Arraylist Arasındaki Farklar
- Diziler sabit uzunlukta tanımlanırlar, oluşturulduktan sonra büyüyüp, küçültülemezler. ArrayList’de ise böyle bir kısıtlama yoktur. ArrayList’e yeni elemanlar eklendikçe boyutu otomatik olarak arttırılır, elemanlar silindikçe ise boyutu azaltılır.
- Diziler tanımlanırken tutacağı elemanların türünün belirtilmesi gerekir. Bu tür dışındaki elemanların dizi içerisine eklenmesi mümkün olmaz. ArrayList’te ise farklı türden değişkenler ve nesneler aynı koleksiyon içerisinde saklanabilir.
- ArrayList sınıfının koleksiyon içerisindeki verileri yönetmek için birçok metodu ve özelliği bulunur.
ArrayList Tanımlama, İçerisine Eleman Ekleme ve Silme
Öncelikle uygulamalarımızda ArrayList sınıfını kullanabilmek için System.Collections namespace’ ini çalışmamıza eklememiz gerekir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.Collections; using System.Text; namespace KoleksiyonUygulamalari { class Program { static void Main(string[] args) { ArrayList liste = new ArrayList(); liste.Add("Ahmet"); liste.Add(34); liste.Add('A'); liste.Remove('A'); } } } |
Yukarıdaki örnekte liste isminde bir ArrayList örneği oluşturulmuş ve Add() metoduyla farklı türlerden değişkenler listeye eklenmiştir. Kod yazarken dikkat ettiyseniz Add metodu içerisine parametre olarak object türünden oluşturulmuş herhangi bir nesne eklenebilir. Listeden eleman silmek içinse Remove() metodu kullanılır.
ArrayList İçerisindeki Verilere Erişmek
Yukarıdaki örnekte farklı veri tiplerini bir ArrayList içerisine ekledik. Pratikte böyle bir kullanım hem performans hem de algoritmik bakımdan bir çok problem yaratacağı için, genellikle benzer veri türlerinin ArrayList içerisinde saklanması daha uygundur. ArrayList içersindeki verilere, aynı dizilerdeki gibi indis numarasıyla erişim sağlanabilir. Yada tüm ArrayList bir for-each döngüsü yardımıyla listelenebilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; using System.Collections; using System.Text; namespace KoleksiyonUygulamalari { class Program { static void Main(string[] args) { ArrayList liste = new ArrayList(); liste.Add("Ahmet"); liste.Add("Murat"); liste.Add("Yeşim"); liste.Add("Deniz"); Console.WriteLine(liste[2]); foreach (String eleman in liste) { Console.WriteLine(eleman); } } } } |
ArrayList Sınıfı İçerisinde Kullanılan Diğer Önemli Metodlar
Count: ArrayList içerisindeki toplam eleman sayısını int türünde döndürür.
AddRange: Diğer koleksiyon tabanlı nesneleri ya da dizileri ArrayList içerisine aktarır.
Sort: Listedeki elemanları sıralar. 3 farklı kullanımı vardır. İstenirse sadece belirli indeks numarasından sonraki elemanlarda sıralanabilir.
Reverse: Tüm listeyi tersine çevirir. Yani listedeki birinci eleman sonuncu, sonuncu eleman birinci olacak şekilde tüm liste tersine döndürülür.
Clear: Tüm ArrayList içerisindeki elemanları siler.
BinarySearch: Liste içerisinde parametre olarak verilen değerin bulunup bulunmadığını arar. Bulunursa indis numarasını döndürür, bulamazsa negatif bir değer döndürür. BinarySearch ile arama yapmak için öncelikle listenin sıralanması gerekir.
CopyTo: Tüm liste ya da listenin bir bölümünün başka bir ArrayList’e ya da diziye kopyalanmasını sağlar.
teşekkürler hocam yarın finallerim var. not alacağım
arraylist yapsında kullanılan add,remove ve capasiity fonksiyonlarını kendimiz nasıl yazabilirz sınav sorum