Java ‘ da Array (Dizi) Yapısı
Programlama dillerinde hemen herkesin aşina olduğu, en çok bilinen data structure (veri yapısı) Array dir. Array ordered(sıralı) veya unordered(sırasız) olabilir. Bu kavramlara daha sonraki yazılarda değineceğim. Öncelikle bu Array yapısına neden ihtiyaç duyduğumuzu ve javada array konusunun nasıl ele alındığını anlatmak istiyorum.
Farzedelimki bir web sitesinde bir film listesi yayınlamak istiyorum. Bu filmleri memory de tutmanın yollarından bir tanesi bu film setini bir array(dizi) içerisine koymaktır. Böylece film listesindeki filmleri web sitesinde gösterilebilir, bu filmler içerisinde arama yapabilir, listeye yeni bir film ekleyebilir veya bir filmi listeden çıkarabilirim. Bu tarz yaklaşımlarda array başvurulacak bir alternatif olabilir.
Java da veriyi memory de primitive type(int,double,char vb..) veya object type olarak saklayabiliriz. Java yazılım dilinde array object type dır.Bu yüzden yeni bir array oluşturmak istediğimizde new anahtar sözcüğü kullanılır. Ayrıca oluşturulan dizinin tipi bu diziye ne türde elemanlar koyulabileceğini belirler. char[]
bu dizinin sadece char
türünde elemanlar alacağını söylerken aynı şekilde int[]
sadece int
tipinde eleman alabileceğini söyler. Herhangi bir primitive veya object tipinde dizi oluşturulabilir. Basitlik açısından aşağıdaki örnekle devam edelim:
Stack memory de oluşan charArray dizisinin referansı yani adresi tutulur. Bu referansla heap memory de oluşan (somut)charArray objesine ulaşılır. char
tipinde charArray
isminde bir referans ile 2 eleman alabilen bir array objesini memory de oluşturduk. Artık elimizde 2 eleman alabilen bir array var. Bu array in içi şimdilik boş(null). Bu array’in içerisine char
tipinde elemanları koymaya başlayalım.
Resimde ki gibi array içerisine elemanı setlerken index numarasını yazmak önemlidir, çünkü bu array 2 elaman alıyor ve index no su [0]
ya da [1] ,
hangisine setlemem gerektiğini belirtmeliyim. Artık elimde char
tipinde 2 elemanı olan bir charArray objesi var. 2 eleman alabilen bu array e bir üçüncüyü eklemek istediğimde runtime anında java.lang.ArrayIndexOutOfBoundsException hatasını alırım. Bunun anlamı elinde 2 eleman alabilen bir dizi var buna üçüncüyü ekleyemezsin demektir. Java da array ler sabit uzunluktadır. Dizi oluşturulurken içerebileceği eleman sayısı bellidir, fakat bu diziler customize(implemente) edilip dizinin içerebileceği eleman sayısı dinamik hale getirilebilir. Daha sonraki lineer search konusunda bunu ele alacağız.
Dizinin içerisindeki elemanlara erişmek istediğimde yine devreye dizinin index numaraları girer, böylece dizinin ismi ve index numarasıyla erişmek istediğim dizi elemanını belirtirim.
Java da basit olarak bir array oluşturduk. Array’in içerisini doldurduk.Son olarak da array in içerdiği elemanlara nasıl ulaşacağımızı gördük.
Özetleyecek olursak Java da array lerden bahsediyorsak :
- Herhangi bir tipte array oluşturabiliriz.
int[] intArray = new int[10];
Person[] personArray = new Person[15];
String[] stringArray = new String[30];
- Oluşturduğumuz dizi sabit uzunluktadır fakat dizi implemente edilip dinamik hale getirilebilir.
- Dizinin içerisindeki herhangi bir elemana dizinin index numarasıyla çok hızlı bir şekilde ulaşabiliriz.
Artık java da array yapısına az çok aşina olduğumuza göre bir sonraki yazıda çok bilinen data structure yapılarından biri olan array ‘i kullanarak linear search ve binary search algoritmalarını inceleyeceğiz.