CodeGym /Java Blogu /Rastgele /Java'da Matrix - 2B Diziler
John Squirrels
Seviye
San Francisco

Java'da Matrix - 2B Diziler

grupta yayınlandı

Java'da Matrix / 2D Array nedir?

“Bir matris, sabit sayıda satır ve sütun halinde düzenlenmiş bir sayılar topluluğudur.” Genellikle bunlar gerçek sayılardır. Genel olarak, matrisler karmaşık sayılar içerebilir, ancak basitlik adına burada yalnızca tam sayıları kullanacağız. Bir matrisin nasıl göründüğüne bir göz atalım. Aşağıda 4 satır ve 4 sütun içeren bir matris örneği verilmiştir.Java'da Matris - 2B Diziler - 2
Şekil 1: Basit bir 4x4 matrisi
Bu matrisi Java'da temsil etmek için 2 Boyutlu Dizi kullanabiliriz. 2B Dizi, biri satır ve diğeri sütun için olmak üzere 2 boyut alır. Örneğin, bir int dizi[4][4] tamsayı dizisi belirtirseniz, matrisin 4 satır ve 4 sütun olacağı anlamına gelir. Veya her satır için 4 sütun olacağını söyleyebilirsiniz. Bir matristeki toplam hücre boyutu / sayısı satırlar*sütunlar = mxn = 4x4 = 16 olacaktır.Java'da Matris - 2B Diziler - 3
Şekil 2: Şekil 1'deki matris[4][4], Java'da 2B Dizi olarak temsil edilir

Bir 2B Dizi Bildirin ve Başlatın

Dizinin yalnızca boyutunu bildirmenin veya boyuttan bahsetmeden diziyi başlatmanın bazı farklı yolları.

public class Matrices {

	public static void main(String[] args) {

		// declare & initialize 2D arrays for int and string
		int[][] matrix1 = new int[2][2];
		int matrix2[][] = new int[2][3];
           
           //the size of matrix3 will be 4x4
		int[][] matrix3 = { { 3, 2, 1, 7 }, 
					   { 9, 11, 5, 4 }, 
					   { 6, 0, 13, 17 }, 
					   { 7, 21, 14, 15 } };

		String[][] matrix4 = new String[2][2];

           //the size of matrix5 will be 2x3 
           // 3 cols because at max there are 3 columns
		String[][] matrix5 = { { "a", "lion", "meo" },  
				            { "jaguar", "hunt" } };
	}
}

2B Dizi Geçişi

Java'da normal dizileri nasıl geçeceğimizi hepimiz biliyoruz. 2B diziler için de zor değil. Bunun için genellikle iç içe 'for' döngüleri kullanırız. Bazı yeni başlayanlar bunu uzaylı bir konsept olarak düşünebilir, ancak daha derine iner inmez biraz pratikle bunu uygulayabileceksiniz. Aşağıdaki parçacığa bir göz atın. Tam olarak anlamanız için yalnızca her satıra karşılık gelen sütun sayısını görüntüler.

public class MatrixTraversal {
	public static void main(String[] args) {

	    int[][] matrix = new int[4][4];
	    for (int i = 0; i < matrix.length; i++) 
	    {   
		 // length returns number of rows
		 System.out.print("row " + i + " : ");		
		 for (int j = 0; j < matrix[i].length; j++) 
		 { 
		    // here length returns # of columns corresponding to current row
		    System.out.print("col " + j + "  ");
		 }
	    System.out.println();
	   }
	}
}
Çıktı
satır 0 : sütun 0 sütun 1 sütun 2 sütun 3 satır 1 : sütun 0 sütun 1 sütun 2 sütun 3 satır 2 : sütun 0 sütun 1 sütun 2 sütun 3 satır 3 : sütun 0 sütun 1 sütun 2 sütun 3

Java'da 2D Dizi Nasıl Yazdırılır?

2B Dizi geçişine aşina olduktan sonra, Java'da 2B Dizileri yazdırmanın birkaç yoluna bakalım.

Yuvalanmış “for” döngüsünü kullanma

Java'da matrisi yazdırmanın en temel yolu budur.

public class MatrixTraversal {

    public static void printMatrix(int matrix[][])
    {
        for (int i = 0; i < matrix.length; i++) 
	  {   
	    // length returns number of rows		
	    for (int j = 0; j < matrix[i].length; j++) 
	    { 
	      // here length returns number of columns corresponding to current row
		// using tabs for equal spaces, looks better aligned
		// matrix[i][j] will return each element placed at row ‘i',column 'j'
		System.out.print( matrix[i][j]  + "\t"); 
	     }
	     System.out.println();
	   }
	}
	
	public static void main(String[] args) {

		int[][] matrix = { { 3, 2, 1, 7 }, 
					 { 9, 11, 5, 4 }, 
					 { 6, 0, 13, 17 }, 
					 { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
Çıktı
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

“Her biri için” döngüsünü kullanma

İşte Java'da “ foreach döngüsü ” kullanarak 2D dizileri yazdırmanın başka bir yolu. Bu, Java tarafından sağlanan özel bir döngü türüdür ve burada int[]sıra matristeki her satır boyunca döngü yapar. Oysa “element” değişkeni, satır boyunca sütun dizinine yerleştirilen her bir elemanı içerecektir.

public class MatrixTraversal {

	public static void printMatrix(int matrix[][]){
		for (int [] row : matrix) 
		{   
			// traverses through number of rows		
			for (int element : row) 
			{ 
				// 'element' has current element of row index
				System.out.print( element  + "\t"); 
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {

		int[][] matrix = {  { 3, 2, 1, 7 }, 
					  { 9, 11, 5, 4 }, 
					  { 6, 0, 13, 17 }, 
					  { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
Çıktı
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

“Arays.toString()” yöntemini kullanma

Java'daki Arrays.toString() yöntemi, kendisine iletilen her parametreyi tek bir dizi olarak dönüştürür ve yazdırmak için yerleşik yöntemini kullanır. Oynamak için sahte bir String 2D dizisi oluşturduk. Aynı yöntem tamsayı dizileri için de çalışır. Bunu egzersiziniz için uygulamanızı öneririz.

import java.util.Arrays;
public class MatrixTraversal {
	public static void printMatrix(String matrix[][]){
	
		for (String[] row : matrix) {
			// convert each row to a String before printing
			System.out.println(Arrays.toString(row));
		}
	}
	
	public static void main(String[] args) {

		String [][] matrix = {  { "Hi, I am Karen" }, 
						{ "I'm new to Java"}, 
						{ "I love swimming" }, 
						{ "sometimes I play keyboard"} };
		printMatrix(matrix);
	}
}
Çıktı
[Merhaba, ben Karen] [Java'da yeniyim] [Yüzmeyi seviyorum] [bazen klavye çalarım]

Kod Açıklama

İlk yinelemede String[]row , “Merhaba, ben Karen” ifadesini bir Dizi olarak okuyacak , onu bir Dizeye dönüştürecek ve ardından yazdıracaktır. Tüm iterasyonlar bu şekilde gerçekleşecek. Burada sağlanan yardımcı program, herhangi bir indeksi (i, j) veya iç içe döngüleri takip etmeniz gerekmemesidir.

Çözüm

Java'daki 2B Diziler, çok boyutlu dizilerin en basitidir. Bu makalenin sonunda, bunları kullanmaktan korkmadığınızı, bunun yerine bazı ciddi işler için kolları sıvamaya hazır olduğunuzu umuyoruz. Tüm bu örnek kodları çalıştırabilir veya size kolaylık sağlayacak şekilde satır satır hata ayıklayabilirsiniz. Ama sonunda, (her zaman olduğu gibi) becerinin büyük bir uygulama ve sabırla elde edildiğini tavsiye etmek istiyoruz. Java'da 2B Diziler ile eğlenceli öğrenme deneyimine sahip olmanızı dileriz. İyi şanlar!
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION