Blogger tarafından desteklenmektedir.

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,
int[][] dizi = {
{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,
int[][] dizi = new int[4][6];
//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,
int[][] a = new int[4][];
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

//FOREACH döngüsü nasıl çalıştı?
//"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

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);

Program Çıktısı:
Toplam: 120


Process finished with exit code 0


Hiç yorum yok