29 Array Construction

Merhaba Arkadaslar,
Bir onceki yazida Array Declaration konusunu incelemistik. Bu yazida Array Construction konusunu inceleyecegiz.

“Array Construction” ifadesinden kasit , bir array/dizi objesini Heap’te yaratmak/olusturmak/create anlamina gelmektedir. Bir array/dizi objesi yaratilmadan once Java, Heap’te bu obje icin ne kadar yer ayrilmasi gerektigini (allocate) bilmelidir. Bu nedenle dizinin boyutu, olusturulma zamaninda(creation time) belirli olmalidir.

Construction One-Dimensional Array ( Tek Boyutlu Dizi Olusturma)
Yeni bir dizi olusturmak icin new anahtar kelimesini kullaniriz.

int[] testScores; //declare bildiri/tanitim islemi
testScores = new int[4]; //construct array / dizi olusturma

ya da 

int [] testScores = new int[4];

Bu basit dizi olusturma islemini hemen hemen herkes bilmektedir.  Bu kodlarin anlamini biraz daha detaylica inceleyecek olursak ; Heap’te yeni bir dizi objesi olusturulur ve bu dizi objesi 4 tane elaman tutmaktadir. Onceki yazilarda inceledigimiz gibi bu elemanlar icin varsayilan deger 0 olacaktir. Hatirlayacagimiz gibi tum diziler objedir. Bu nedenle referans tipindeki testScores degiskeni Heap’teki bu objeyi gostermektedir.(refer)

one-dimentional-array-on-heap-example-tutorial

Yukarida belirttigim gibi, JVM , Heap’te yeterli/uygun alani ayirmak(allocate) icin dizinin boyutunu olusturulma zamaninda bilmelidir. Bu nedenle asagidaki kod derleme hatasi verecektir.

int[] testScores = new int []; //compile error /derleme hatasi

Constructing Multidimensional Array ( Cok Boyutlu Dizi Olusturma)
Cok Boyutlu diziler , dizilerin dizisidir. (arrays of array) . Ne demek istedik dikkatlice inceleyelim;

int [][] myArray = new int[3][];
myArray[0] = new int[2];
myArray[0][0] = 6;
myArray[0][1] = 7;
myArray[1] = new int[3];
myArray[1][0] = 9;
myArray[1][1] = 8;
myArray[1][2] = 5;

Cok boyutlu diziler de objedir. myArray referans degiskeni Heap’te 2 boyutlu bir dizi objesine referansta bulunmaktadir/tutmaktadir. (2-D int [] [] array object). Burada dikkat ederseniz [3][] ifadesinde sadece ilk koseli parantezde sayi belirttik bu gecerlidir cunku JVM’in myArray referans degiskeninin boyutunu bilmesi yeterli olacaktir.

myArray[0] = new int[2];

ifadesi ile yeni bir tek boyutlu dizi objesi olusturuyoruz. (int [] array object)

myArray[0][0] = 6;
myArray[0][1] = 7;

Olusturdugumuz bu diziye deger atamasinda bulunuyoruz, deger atamasinda bulunmasaydik int tipinde bir dizinin elemanlari varsayilan olarak 0 olacaktir. Ayni islemi diger tek boyutlu dizi icin de yapiyoruz ;

myArray[1] = new int[3];
myArray[1][0] = 9;
myArray[1][1] = 8;
myArray[1][2] = 5;

2Boyutlu, myArray dizimiz icin 3.elamani (myArray[2]) herhangi bir diziye referansta bulunmadigi icin bu elemanin degeri, varsayilan deger olarak null olacaktir. Bunun nedeni myArray 2 boyutlu bir dizi referans degiskenidir ve her elemani bir int tipinde diziye referansta bulunur. Her dizi bir obje oldugu icin,myArray icin varsayilan deger olarak 0 degil null olacaktir.

two-dimentional-array-on-heap-example-tutorial

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*