JAVA Kodlama Örnekleri #27 - İki Boyutlu Diziler ve for-each Döngüsü - 2D Arrays, foreach
Tek boyutlu bir diziyi hücrelerinde ilgili veri tipindeki elemanları barındıran 1 satır ve eleman sayısı kadar sütunlardan oluşan bir tablo gibi düşünebiliriz. Bu bağlamda 2 boyutlu dizileri de 1'den çok tek boyutlu dizinin alt alta birleşimi olarak nitelemek mümkündür.
2 boyutlu (kısaca 2B) diziler farklı şekilde tanımlanabilir:
- Elemanları belirterek 2B dizi tanımlama,
{0,1,2},
{3,4},
{5,6,7,8,9,10},
{11,12,13,14,15}
};
//2 boyutlu 16 elemanlı dizi adlı bir(int) dizisi tanımlandı.
//Her satır aynı sayıda elemana sahip olmak zorunda değildir ve bu tür dizilere düzensiz diziler denir.
- Satır ve sütün sayısı belirterek 2B dizi tanımlama,
//4 satırı, 6 sütunu olan ve en fazla 24 eleman içeren 2 boyutlu dizi adlı int dizisi tanımlandı.
//dizi int veri tipinde olduğundan eleman ataması yapılmadığı sürece tüm elemanlar 0 değerini alır.
//Bir başka deyişle [4][6] : alt alta 4 adet, 6'şar elemanlı diziler olarak düşünülebilir.
- Başta yalnızca satır sayısı belirtilerek aşamalı tanımlama,
a[0] = new int[4];
a[1] = new int[2];
a[2] = new int[3];
a[3] = new int[6];
//ilk aşamada 4 satırlı a dizisi tanımlandı.
//ilk satıra (0. satır indeksi) 4 eleman kapasitesi tanımlandı.
//2. satıra (1. satır indeksi) 2 eleman kapasitesi tanımlandı.
//3. satıra (2. satır indeksi) 3 eleman kapasitesi tanımlandı.
//4. satıra (3. satır indeksi) 6 eleman kapasitesi tanımlandı.
//Özetle 4 satırda toplam 15 elemanlı bir a dizisi tanımlandı.
ÖRNEK:
//2 boyutlu bir tamsayı dizisi tanımlayalım ve elemanlarını atayalım.
int[][] dizi = {{0,1,2},
{3,4},
{5,6,7,8,9,10},
{11,12,13,14,15}
};
//2 Boyutlu dizileri ekrana yazdırma,
//foreach döngüsü ile diziyi ekrana yazdıralım,
for(int[] i: dizi){
for(int eleman: i){
System.out.print(eleman + " ");
}
System.out.println();
}
Program Çıktısı:
0 1 2
3 4
5 6 7 8 9 10
11 12 13 14 15
Process finished with exit code 0
//"dizi" adlı dizimizin ilk satırındaki elemanları i dizisine atar ve iç for döngüsüne geçer.
//"i" dizisinin her elemanını sırasıyla "eleman" adlı değişkene atar ve eleman değişkenini yanında 2 boşluk bırakarak ekrana yazar. "i" dizisinin her elemanı için bu işlemi yaptıktan sonra dış for döngüsüne geçer.
//Bir satır alta geçer.
//"dizi" adlı dizimizin tüm satırları için yukarıdaki işlemleri tekrarlar.
//Dizinin her satırının kaç elemanı olduğunu ekrana yazdıralım,
System.out.println(dizi[0].length + " eleman");
System.out.println(dizi[1].length + " eleman");
System.out.println(dizi[2].length + " eleman");
System.out.println(dizi[3].length + " eleman");
Program Çıktısı:
3 eleman
2 eleman
6 eleman
5 eleman
2 eleman
6 eleman
5 eleman
Process finished with exit code 0
//Dizinin elemanlarının toplamını ekrana yazdıralım,
int toplam = 0;
for(int[] i: dizi){
for(int eleman: i){
toplam += eleman;
}
}
System.out.println("Toplam: " + toplam);
Toplam: 120
Process finished with exit code 0
Yorumlarınızı Bekliyorum