30 Mart 2012 Cuma

Javada Massivler (Arrays)


Javada massivler obyekt oldugu ucun massiv yaratmaq ucun istifade olunan usul eyni obyektlerin yaradilmasi kimidir. new acar sozunu istifade ederek massiv yarada bilerik. Tek ferq, sadece kompilyatora bir massiv yaratdigimizi bildirdiyimiz ‘ [ ] ‘ (massiv operatoru) operatoru deyisen tesvirinde gosterilir.
Javada massivler haqqinda bilinmesi lazim olan en vacib noqtelerden biri Javada massiv elementleri ’0’-dan baslayaraq nomrelenir. Yeni 10 elementden ibaret bir massiv yaratdigimiz zaman massivin ilk elementinin indeksi 0,son elementinin indeksi 9 olar.

Massivleri Yaratmaq

int[] massiv;
int basqaMassiv[];
Yuxarıdaki kodda, int tipinde 2 ferqlı birolculu massiv referansı yaratdiq.Massiv yaradilmasinda istifade olunan ‘[ ]‘ operatoru ya massivin tipinden sonar,ya da yaratdigimiz massivin adindan sonar yazila biler.operatörü tip belirtecinden sonra ya da değişken tanımlamasından sonra kullanılabilir.
Massiv referanslarına qiymet verme,massiv ucun bir obyekt yaradilaraq kod icinde herhansi bir yerde edile biler.
int[] massiv = new int[10]; // 10 elementlik bir int massivi
int basqaMassiv[];
basqaMassiv = new int[5]; // 5 elementlik basqa bir massiv
int tipinde olduğu kimi Javada primitive tiplerden obyekt tiplerine qeder her tipden massiv yarada bilerik.
int[] intMassivi;
byte[] byteMassivi;
String[] stringMassivi;
Object[] objectMassivi;

Massivlere Qiymet Vermek

Javada massivlere 2 cur iymet vere bilirik.dizilere Birinci qayda massiv referansı yaratdigimiz setirde massiv elementlerine aciqca qiymet vere bilirik.Bu qaydada diqqet edilmesi lazim olan noqte obyekt referansı yaratdigimiz setirde bu qiymetlendirmeni etmeyimiz sertdir.Obyekt referansı yaratdiqdan sonar bu qiymetlendirmeni kodun basa yerinde etmek kompilyasiya xetasina sebeb olar...
String[] stringMassivi = {"Java", "C++", "Python", "Haskell"}; // duzgun
String[] basqaMassiv;
basqaMassiv = {"Php", "Perl", "Ruby"}; // Error : kompilyasiya xetasi
Massivlere qiymet vermede istifade olunan basqa bir usul massiv referansina bir massiv obyekti yaradib qiymetlendirme etmekdir.Massivin olcusunu teyin etdikden sonar massiv elementlerini kodun herhansi bir yerinde vere bilerik.
int[] intMassivi;
intMassivi = new int[10] // 10 luq bir int massivi yarat
intMassivi[0] = 1;
intMassivi[1] = 2;
//..
intMassivi[9] = 10; //massivin son elementi
Massiv elementlerine massiv operatoru olan ‘[ ]‘ operatoru ile muraciet ede bilirik.Yuxaridaki kodda görüldüyü kimi 10 luq bir massivi yaratdiq ve massiv elementlerine ‘[ ]‘ operatorunu istifade ederek raatcamuraciet ede bilir,sanki normal bir deyisen kimi qiymet vere bilirik. Xatırlayın, Javada massiv elementleri 0 dan başlayir.Ona gore de ilk elemente intMassiv[0],son elemente ise intMassiv[9] seklinde qiymet veririk.

Massiv Uzunluğu

Javada massivler bir obyekt oldugu ucun siniflerin malik oldugu butun ozellikleri massivler ile de istifade ede bilirik.Biz massivin uzunlugunu alamaq ucun length adinda bir ozellikden istifade ede bilerik. massiv.length şeklinde massiv adındaki massivin uzunlugunu tapa bilerik.
Indi yaratdigimiz 10 elementlik bir int massivine 30-dan boyuk 10 dene say verek.
int[] massiv;
massiv = new int[10];
int asagiserhed = 30;

for(int i = 0; i < massiv.length; asagiserhed++)
{
    if(asagiserhed % 2 == 0)
    {
        massiv[i] = asagiserhed;
        i++;
    }
}
// massivin qiyetlerini ekrana verek
for(int i=0;i<massiv.length;i++)
{
    System.out.printf("%d ", massiv[i]);
}
// netice
30 32 34 36 38 40 42 44 46 48

Javada Cox Olculu Massivler

Javada massivler istenilen olcude teyin edile biler.İki, Üç olculu ( Two Dimensional, Three Dimensional Arrays) ve daha cox olcude teyin etmek tamam proqramilara buraxilmisdir. Çox olculu massivler rahatca massivlerin massivi (arrays of arrays)  kimi dusune bilerik. Ancaq,kodun oxunaqli olmasi ucun massivleri iki olculu olmasi daha meqsede uygundur. Burada ilk massiv setir sayini,diger massiv ise sutun sayini temsil edir.
String[][] massiv = {
    {"Eli", "Ayşe"},
    {"Bey", "Xanım"}
    };
    System.out.println(massiv[0][0] + " " + dizimassiv[1][0]);
    System.out.println(massiv[0][1] + " " + massiv[1][1]);
// netice
Eli Bey
Ayşe Xanım
Üstdeki numunede iki olculu bir String massiv yaratdiq.Çox olculu massiv yaradarken edilmesi lazim olanlardan biri yaradacagimiz massiv olcusu qeder massiv operatorunu tipin qabagina elave etmekdir.Numunede biz 2 olculu bir massiv yaratdigimiz ucun bu teyin etmeni String[][] massiv şeklinde ifade etdik.
Çox olculu massivler bezen bas qarisdirici olsa da mentiqi cox rahatdir. Bir massiv yaradilir,o massivin elementleri de basqa bir massivdir.Bu şekilde, istenildiyi qeder derinlikde massiv yarada bilerik.

Cox Olculu Massiv Uzunluqlari

Daha evvel behs etdiyimiz kimi,Java massivleri length adinda bir ozellik sayesinde uzunlugunu rahat sekilde mueyyen olunurdu.Çox olculu massivlerin de bu qaydada uzunlugunu tapa bilerik. Numunedeki massiv adindaki massivin uzunlugunu asagidaki kimi tapa bilerik.
System.out.println(massiv.length);
//netice
2
massiv adındaki massivin elementleri de bir massiv oldugu ucun massiv[0] seklinde bir ifade massiv icerisindeki ilk massivi verecek.Yene eyni qaydada bu massivlerin uzunluqlarini da asagidaki kimi tapa bilerik.
massiv[0].length
massiv[1].length
Numunenin C dilinde 2 olculu bir massiv yaratmaq ucun array[10][5] şeklinde yazariq.Bu ifade ile array adindaki massivin 10 elementi de massiv olan bir massiv teyin ederik.Massiv elementlerinin her biri sabit olaraq 5 uzunlugunda basa bir massivdir. Biz bu 10 dene 5 elemelementlik massivin olculerini ferqli olculerde teyin ede bilerik.Anca Java buna icaze verir.
// Elementleri massiv  olan bir massiv referansı yarat
// Yeni cox olculu massiv
String[][] massiv;
//bu massivin elementleri massiv olan 2 elementi olsun
massiv = new String[2][];
//massivin ilk elementi 2 elementli bir massiv olsun
massiv[0] = new String[2];
//ilk element olan massivin ilk elementi "Bir" olsun
massiv[0][0] = "Bir";
//diger elementi de "İki" olsun
massiv[0][1] = "İki";
//massiv adindaki massivin ikinci elemelementi uzunluğu 3 olan bir massiv olaraq teyin et
massiv[1] = new String[3];
//ikinci elementinin ilk elementi "Üç" olsun
massiv[1][0] = "Üç";
massiv[1][1] = "Dörd";
massiv[1][2] = "Beş";

System.out.println(massiv[1][2]);
System.out.println(massiv [0][1]);
//Netice
Beş
İki
Çox olculu massivlerdeki bu ozellik Javanin mensub oldugu ozellikdir.

Hiç yorum yok: