Ce este o matrice / matrice 2D în Java?
„O matrice este o colecție de numere aranjate într-un număr fix de rânduri și coloane.” De obicei, acestea sunt numere reale. În general, matricele pot conține numere complexe, dar, de dragul simplității, vom folosi aici doar numere întregi. Să aruncăm o privire la cum arată o matrice. Iată un exemplu de matrice cu 4 rânduri și 4 coloane.Declarați și inițializați o matrice 2D
Iată câteva moduri diferite de a declara doar dimensiunea matricei sau de a o inițializa fără a menționa dimensiunea.
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" } };
}
}
Traversare matrice 2D
Cu toții știm cum să traversăm matrice obișnuite în Java. Nici pentru matrice 2D nu este greu. În mod obișnuit, folosim bucle „for” imbricate pentru aceasta. Unii începători s-ar putea gândi la el ca la un concept extraterestră, dar de îndată ce veți săpa mai adânc în el, veți putea implementa acest lucru cu puțină practică. Aruncă o privire la următorul fragment. Afișează doar numărul de coloane corespunzător fiecărui rând pentru o înțelegere aprofundată.
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();
}
}
}
Ieșire
rând 0 : col 0 col 1 col 2 col 3 rând 1 : col 0 col 1 col 2 col 3 rând 2 : col 0 col 1 col 2 col 3 rând 3 : col 0 col 1 col 2 col 3
Cum să imprimați o matrice 2D în Java?
După ce vă familiarizați cu traversarea matricei 2D, să ne uităm la câteva moduri de imprimare a matricelor 2D în Java.Folosind bucla imbricată „for”.
Acesta este cel mai simplu mod de a imprima matricea în 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);
}
}
Ieșire
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Folosind bucla „for-each”.
Iată o altă modalitate de a imprima matrice 2D în Java folosind „ bucla foreach ”. Acesta este un tip special de buclă oferit de Java, unde int[]row va trece prin fiecare rând din matrice. În timp ce, variabila „element” va conține fiecare element plasat la indexul coloanei prin rând.
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);
}
}
Ieșire
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Folosind metoda „Arays.toString()”.
Metoda Arrays.toString() în Java, convertește fiecare parametru transmis ca o singură matrice și folosește metoda încorporată pentru a-l imprima. Am creat o matrice String 2D falsă pentru a juca. Aceeași metodă funcționează și pentru matricele întregi. Vă încurajăm să o exersați pentru exercițiul dvs.
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);
}
}
Ieșire
[Bună, sunt Karen] [Sunt nou în Java] [Îmi place să înot] [Uneori cânt la tastatură]
GO TO FULL VERSION