CodeGym/Java Blog/Random/Matrix sa Java - Mga 2D Array
John Squirrels
Antas
San Francisco

Matrix sa Java - Mga 2D Array

Nai-publish sa grupo

Ano ang isang Matrix / 2D Array sa Java?

"Ang matrix ay isang koleksyon ng mga numero na nakaayos sa isang nakapirming bilang ng mga row at column." Kadalasan ito ay mga tunay na numero. Sa pangkalahatan, ang mga matrice ay maaaring maglaman ng mga kumplikadong numero ngunit para sa pagiging simple ay gagamit lamang tayo ng mga buong numero dito. Tingnan natin kung ano ang hitsura ng isang matrix. Narito ang isang halimbawa ng isang matrix na may 4 na row at 4 na column.Matrix sa Java - 2D Arrays - 2
Fig 1: Isang simpleng 4x4 matrix
Upang katawanin ang matrix na ito sa Java, maaari tayong gumamit ng 2 Dimensional Array. Ang isang 2D Array ay tumatagal ng 2 dimensyon, isa para sa row at isa para sa column. Halimbawa, kung tumukoy ka ng integer array int arr[4][4] ibig sabihin ang matrix ay magkakaroon ng 4 na row at 4 na column. O maaari mong sabihin para sa bawat row ay magkakaroon ng 4 na column. Ang kabuuang laki / bilang ng mga cell sa isang matrix ay magiging mga row*column = mxn = 4x4 = 16.Matrix sa Java - 2D Arrays - 3
Fig 2: Ang matrix[4][4] sa Fig 1 ay kinakatawan bilang 2D Array sa Java

Magdeklara at Magsimula ng 2D Array

Narito ang ilang iba't ibang paraan upang ipahayag lamang ang laki ng array, o simulan ito nang hindi binabanggit ang laki.
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" } };
	}
}

2D Array Traversal

Alam nating lahat kung paano tumawid sa mga regular na array sa Java. Para sa 2D arrays hindi rin ito mahirap. Karaniwang ginagamit namin ang mga nested 'for' loops para dito. Maaaring isipin ito ng ilang mga baguhan bilang ilang alien na konsepto, ngunit sa lalong madaling paghukay mo ng mas malalim dito, maipapatupad mo ito nang may ilang kasanayan. Tingnan ang sumusunod na snippet. Ipinapakita lamang nito ang bilang ng mga column na tumutugma sa bawat row para sa iyong masusing pag-unawa.
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();
	   }
	}
}
Output
row 0 : col 0 col 1 col 2 col 3 row 1 : col 0 col 1 col 2 col 3 row 2 : col 0 col 1 col 2 col 3 row 3 : col 0 col 1 col 2 col 3

Paano Mag-print ng 2D Array sa Java?

Pagkatapos mong maging pamilyar sa 2D Array traversal, tingnan natin ang ilang paraan ng pag-print ng 2D Arrays sa Java.

Gamit ang Nested "para sa" loop

Ito ang pinakapangunahing paraan upang i-print ang matrix sa Java.
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);
	}
}
Output
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Gamit ang "for-each" na loop

Narito ang isa pang paraan upang mag-print ng mga array ng 2D sa Java gamit ang " foreach loop ". Ito ay isang espesyal na uri ng loop na ibinigay ng Java, kung saan ang int[]row ay mag-loop sa bawat row sa matrix. Sapagkat, ang variable na "elemento" ay maglalaman ng bawat elemento na inilagay sa column index sa pamamagitan ng row.
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);
	}
}
Output
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Gamit ang pamamaraang "Arays.toString()".

Arrays.toString() method sa Java, kino-convert ang bawat parameter na ipinapasa dito bilang isang array at ginagamit ang built in na paraan nito para i-print ito. Gumawa kami ng dummy String 2D array para paglaruan. Gumagana rin ang parehong paraan para sa mga integer array. Hinihikayat ka naming gawin ito para sa iyong ehersisyo.
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);
	}
}
Output
[Hi, ako si Karen] [Bago lang ako sa Java] [I love swimming] [minsan naglalaro ako ng keyboard]

Paliwanag ng Code

Sa unang pag-ulit, mababasa ng String[]row ang “Hi, I am Karen” bilang Array, i-convert ito sa String at pagkatapos ay i-print ito. Ganyan magaganap ang lahat ng mga pag-ulit. Ang utility na ibinigay dito ay hindi mo kailangang subaybayan ang anumang mga index (i, j) o mga nested loop.

Konklusyon

Ang 2D Arrays sa Java ay ang pinakasimple sa mga multi-dimensional na array. Sa pagtatapos ng artikulong ito, umaasa kaming hindi ka natatakot na gamitin ang mga ito, sa halip ay handa na sa paglulunsad ng iyong mga manggas para sa ilang seryosong trabaho. Maaari mong patakbuhin ang lahat ng sample na code na ito o i-debug ang bawat linya ayon sa iyong kaginhawahan. Ngunit sa huli, gusto naming payuhan (tulad ng dati) na ang kasanayang iyon ay kasama ng mahusay na pagsasanay at pasensya. Sana ay mayroon kang masayang karanasan sa pag-aaral gamit ang 2D Arrays sa Java. Good Luck!
Mga komento
  • Sikat
  • Bago
  • Luma
Dapat kang naka-sign in upang mag-iwan ng komento
Wala pang komento ang page na ito