CodeGym /Blog Java /rawak /Matriks dalam Java - Tatasusunan 2D
John Squirrels
Tahap
San Francisco

Matriks dalam Java - Tatasusunan 2D

Diterbitkan dalam kumpulan

Apakah Matriks / Array 2D di Jawa?

"Matriks ialah himpunan nombor yang disusun menjadi bilangan baris dan lajur tetap." Biasanya ini adalah nombor nyata. Secara umum, matriks boleh mengandungi nombor kompleks tetapi demi kesederhanaan kita hanya akan menggunakan nombor bulat di sini. Mari kita lihat bagaimana rupa matriks. Berikut ialah contoh matriks dengan 4 baris dan 4 lajur.Matriks dalam Java - Tatasusunan 2D - 2
Rajah 1: Matriks 4x4 ringkas
Untuk mewakili matriks ini di Jawa, kita boleh menggunakan Tatasusunan 2 Dimensi. Tatasusunan 2D mengambil 2 dimensi, satu untuk baris dan satu untuk lajur. Sebagai contoh, jika anda menentukan tatasusunan integer int arr[4][4] maka ini bermakna matriks akan mempunyai 4 baris dan 4 lajur. Atau anda boleh katakan untuk setiap baris akan ada 4 lajur. Jumlah saiz / bilangan sel dalam matriks ialah baris*lajur = mxn = 4x4 = 16.Matriks dalam Java - Tatasusunan 2D - 3
Rajah 2: Matriks[4][4] dalam Rajah 1 diwakili sebagai Tatasusunan 2D di Jawa

Isytihar & Mulakan Tatasusunan 2D

Berikut ialah beberapa cara berbeza untuk sama ada hanya mengisytiharkan saiz tatasusunan, atau memulakannya tanpa menyebut saiznya.

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" } };
	}
}

Traversal Tatasusunan 2D

Kita semua tahu cara melintasi tatasusunan biasa di Jawa. Untuk tatasusunan 2D ia tidak sukar juga. Kami biasanya menggunakan gelung 'untuk' bersarang untuk ini. Sesetengah pemula mungkin menganggapnya sebagai beberapa konsep asing, tetapi sebaik sahaja anda menggali lebih mendalam, anda akan dapat melaksanakannya dengan beberapa latihan. Sila lihat coretan berikut. Ia hanya memaparkan bilangan lajur yang sepadan dengan setiap baris untuk pemahaman menyeluruh anda.

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();
	   }
	}
}
Pengeluaran
baris 0 : kol 0 kol 1 kol 2 kol 3 baris 1 : kol 0 kol 1 kol 2 kol 3 baris 2 : kol 0 kol 1 kol 2 kol 3 baris 3 : kol 0 kol 1 kol 2 kol 3

Bagaimana untuk Mencetak Array 2D di Java?

Selepas anda biasa dengan traversal Array 2D, mari lihat beberapa cara untuk mencetak Array 2D di Java.

Menggunakan gelung "untuk" Bersarang

Ini adalah cara paling asas untuk mencetak matriks di Jawa.

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);
	}
}
Pengeluaran
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Menggunakan gelung "untuk-setiap".

Berikut ialah cara lain untuk mencetak tatasusunan 2D dalam Java menggunakan " foreach loop ". Ini ialah jenis gelung khas yang disediakan oleh Java, di mana baris int[] akan menggelung setiap baris dalam matriks. Manakala, pembolehubah "elemen" akan mengandungi setiap elemen yang diletakkan pada indeks lajur melalui baris.

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);
	}
}
Pengeluaran
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Menggunakan kaedah "Arays.toString()".

Kaedah Arrays.toString() dalam Java, menukar setiap parameter yang dihantar kepadanya sebagai tatasusunan tunggal dan menggunakan kaedah terbina dalam untuk mencetaknya. Kami telah mencipta tatasusunan String 2D tiruan untuk dimainkan. Kaedah yang sama juga berfungsi untuk tatasusunan integer. Kami menggalakkan anda untuk mengamalkannya untuk senaman anda.

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);
	}
}
Pengeluaran
[Hai, saya Karen] [Saya baru mengenal Java] [Saya suka berenang] [kadang-kadang saya bermain papan kekunci]

Penerangan Kod

Dalam lelaran pertama, String[]baris akan membaca "Hai, saya Karen" sebagai Array, tukarkannya kepada String dan kemudian cetaknya. Begitulah cara semua lelaran akan berlaku. Utiliti yang disediakan di sini ialah anda tidak perlu menjejaki sebarang indeks (i, j) atau gelung bersarang.

Kesimpulan

Tatasusunan 2D di Jawa adalah tatasusunan berbilang dimensi yang paling mudah. Menjelang akhir artikel ini kami harap anda tidak takut menggunakannya, sebaliknya bersedia untuk menyingsing lengan baju anda untuk beberapa kerja yang serius. Anda boleh menjalankan semua kod sampel ini atau nyahpepijat baris demi baris mengikut keselesaan anda. Tetapi pada akhirnya, kami ingin menasihati (seperti selalu) bahawa kemahiran datang dengan latihan & kesabaran yang hebat. Semoga anda mendapat pengalaman pembelajaran yang menyeronokkan dengan Tatasusunan 2D di Jawa. Semoga berjaya!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION