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.

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]
GO TO FULL VERSION