Anasayfa Java Dili Çok Boyutlu Diziler

Java Dili Çok Boyutlu Diziler

Okan

Tek boyutlu diziler belirli bir isimde listeler oluşturup bu listelerde ilgili işlem yapmak için kullanılır.
İki boyutlu diziler ise daha çok satır ve sütunlardan oluşan yapılar için kullanılır.

Buna uzay sistemindeki x ve y koordinatları gibi de düşünebiliriz.

İki boyutlu diziler matris olarak da adlandırılır. İlk boyuta satır ikinci boyuta sütun denir.

İki boyutlu dizilerin genel yapısı aşağıdaki gibidir:

veri_tipi,dizi_adi [satır_sayısı] [sutun_sayısı];

Bu bölümü 3 başlık altında inceleyeceğiz:

İki boyutlu dizilerin genel yapısını öğrendiğimize göre dizileri tanımlama şekillerini inceleyelim.

İki Boyutlu Dizileri Tanımlanması

int [][] dizi1; // referans oluşturulur.
String [][] dizi2;
double [][] dizi3;

Dizileri tanımlarken boyut sayısı kadar köşeli parantez kullanırız. Tek boyutlu dizilerde tek parantez kullandığımız gibi iki boyutlu dizilerde de 2 tane köşeli parantez kullanmamız gerekir.

İki boyutlu dizilerin 2 çeşit tanımlama şekli vardır.

1-) Diziyi tanımladığımız anda doldurmak:

int [][] dizi = {{12,34},{56,75}};

Diziyi bu şekilde tanımlamak istiyorsak, tanımladığımız satırda değerlerini vermemiz gerekir. Aksi halde aşağıdaki kullanım yanlıştır.

int [][] dizi;
dizi = {{12,34},{56,75}};

2-) new anahtar sözcüğü ile yapılır.

int[][] dizi = new int[2][3]; 
// dizi doldurulmamıssa eleman sayısı belirtilir.

new anahtar sözcüğü ile dizi oluşturmanın bir diğer yöntemi de şu şekildedir:

int [][] dizi;
dizi = new int[][] {{12,34},{56,75}};
 //dizi doldurulduysa eleman sayısı belirtilmez.

Dizi tanımlama ve doldurma işlemleri bu şekildedir. Şimdi de dizilerin ekrana nasıl yazdırılacağını inceleyelim.

İki Boyutlu Dizileri Ekrana Yazdırma

Dizileri ekrana yazdırma göstermeden önce dizi elemanlarına erişmeyi ve dizilerdeki indeks kavramından bahsetmek istiyorum.

Dizilerde, dizinin istediğimiz elemanına ulaşmak için dizinin indekslerini kullanmamız gerekir. Dizilerde indeks 0’dan başlar.

İki boyutlu dizilerin indeksi şu şekildedir:

iki boyutlu diziler

Burada [3][4] lük bir iki boyutlu bir dizinin indeksleri gösterilmiştir.

Şimdi de iki boyutlu bir tane dizi oluşturalım ve daha sonra da programımızın üzerinde bu dizinin elemanlarına indeksler sayesinde ulaşalım.

package kodbloklari.com;

public class diziler1 {
	
	public static void main(String[] args) {
		
		int [][] dizi = {{12,23},{25,67},{12,56}};
		
		System.out.println(dizi[0][1]);
		System.out.println(dizi[0][0]);
		System.out.println(dizi[1][1]);
		System.out.println(dizi[2][0]);
	}
}

Buradaki her süslü parantezin içerisi bir satırı temsil eder. İçindeki sayılarda o satıra ait sütunları. Yani bu dizinin boyutu [3][2] dir. Bu da 3 satır, her satırda da 2 sütun demektir.

Kodun ekran çıktısı aşağıdaki şekildedir:

iki boyutlu diziler

İki boyutlu dizilerin indeksleri ve ekran yazdırılması basit haliyle bu şekildedir.

Dizinin tüm elemanlarını satır ve sütun halinde yazdırmak için genellikle iç içe for döngüleri kullanılır.

package kodbloklari.com;

public class diziler2 {
	
	public static void main(String[] args) {
		
		int [][] dizi = {{12,23},{25,67},{12,56}};
		
		for(int i = 0; i < 3; i++)
		{
			for(int j = 0; j < 2; j++)
			{
				System.out.println("[" + i + "]" + "["+ j +"] = " + dizi[i][j] );
			}
		}
		
		System.out.println("\n");
		
		for(int i = 0; i < 3; i++)
		{
			for(int j = 0; j < 2; j++)
			{
				System.out.print(dizi[i][j] + "\t");
			}
			System.out.println("\n");
		}
	}
}

Dışarıdaki for döngüsü satırı temsil ederken içerideki de sütunu temsil eder. Yani önce [0][0] dan başlar ve [0][1], [0][2] diye devam eder ve ilk satırı doldurur. İlk satır bittikten sonrada dışarıdaki for döngüsü bir tur daha döner ve alt satırda geçer.  Bu şekilde iki boyutlu dizinin tüm elemanlarına erişmiş oluruz.

Kodun ekran çıktısı da şu şekildedir:

diziler

İki boyutlu dizilerin ekrana yazdırılması bu şekildedir.

İki Boyutlu Dizileri Kullanıcıdan Alma

Yukarıdaki örnekte kendi oluşturduğumuz dizi elemanlarını ekrana yazdırmıştık.

Şimdi yapacağımız örnekte ise dizinin elemanlarını da kullanıcıdan alıp ekrana yazdıracağız.

Aynı şekilde kullanıcıdan değerleri alırken de tüm elemanlara ulaşmak için iç içe for döngülerini kullanacağız.

package kodbloklari.com;

import java.util.Scanner;

public class diziler3 {
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		int [][]dizi = new int[2][3];
		
		for(int i = 0; i < 2; i++)
		{
			for(int j = 0; j < 3; j++)
			{
				System.out.print("[" + i + "]" + "["+ j +"] = ");
				dizi[i][j] = scan.nextInt();
			}
		}
		
		System.out.println("\n");
		
		for(int i = 0; i < 2; i++)
		{
			for(int j = 0; j < 3; j++)
			{
				System.out.print(dizi[i][j] + "\t");
			}
			System.out.println("\n");
		}
	}
}

Bu örnekte kullanıcıdan değerleri alırken For döngülerini kullandık. Dışarıdaki For döngüsü satırları ifade ederken içerideki sütunları ifade ediyor. Dıştaki For döngüsü içteki For döngüsü bitene kadar sabit kalıyor.

Bu şekilde satırın tüm sütunlarını dolduruyor. Daha sonrada sütunun tüm elemanları dolduğu için dıştaki For döngüsü bir tur dönmüş olup bir alt satıra inmiş oluyor. Kodun ekran çıktısında anlatmak istediklerimi daha iyi bir şekilde gözlemleyebilirsiniz.

Kodun ekran çıktısı aşağıdaki şekildedir.

iki boyutlu dizi

Şimdi de daha farklı bir örnek yapalım.

3 tane öğrencinin vize ve final notlarını kullanıcıdan alıp ekrana tablo şeklinde yazacağız. Bu örneği iki boyutlu dizileri kullanarak yapacağız. Her bir sütun bir öğrenciyi temsil edecek. Her satırda o öğrenciye ait sınav notlarını temsil edecek.

package kodbloklari.com;

import java.util.Scanner;

public class diziler4 {
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		int [][] dizi = new int[3][2];
		
		for(int i = 0; i < 3; i++)
		{
			for(int j = 0; j < 2; j+=2)
			{
				System.out.print((i+1) + ". Öğrencinin vize notunu giriniz: ");
				dizi[i][j] = scan.nextInt();
				System.out.print((i+1) + ". Öğrencinin final notunu giriniz: ");
				dizi[i][j+1] = scan.nextInt();
			}
		}
			
		System.out.println("\nÖğrenci No\tVize Puanı\tFinal Puanı");
		
		for(int i = 0; i < 3; i++)
		{
			System.out.print((i+1) + "\t\t");
			for(int j = 0; j < 2; j+=2)
			{
				System.out.print(dizi[i][j]);
				System.out.print("\t\t" + dizi[i][j+1] + "\n");
			}
		}
	}
}

Yukarı örnekteki dizi[3][2] iki boyutlu dizisindeki 3 sayısı 3 tane öğrenci olduğunu, 2 sayısı da öğrencinin notlarını belirtiyor.

Kodun ekran çıktısı da aşağıdaki şekildedir:

iki boyutlu dizi

İki boyutlu dizileri kullanarak çok fazla örnek yapabiliriz. Örnekleri incelemek için Java Dili Örnekleri sayfasını ziyaret edebilirsiniz.

Yorum Yap

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Kabul Et Tamamını Oku

Gizlilik Politikası