Mi az a mátrix / 2D tömb a Java nyelven?
"A mátrix számok gyűjteménye, amelyek meghatározott számú sorokba és oszlopokba vannak rendezve." Általában ezek valós számok. Általában a mátrixok tartalmazhatnak komplex számokat, de az egyszerűség kedvéért itt csak egész számokat használunk. Nézzük meg, hogyan néz ki egy mátrix. Íme egy példa egy 4 sorból és 4 oszlopból álló mátrixra.

2D tömb deklarálása és inicializálása
Íme néhány módszer, amellyel vagy csak a tömb méretét deklarálhatod, vagy inicializálhatod a méret említése nélkül.
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 tömb bejárás
Mindannyian tudjuk, hogyan kell bejárni a szabályos tömböket Java nyelven. 2D-s tömböknél ez sem nehéz. Ehhez általában beágyazott „for” ciklusokat használunk. Egyes kezdők talán idegen fogalomnak gondolják, de amint mélyebbre ásol benne, némi gyakorlással meg is tudod valósítani. Tekintse meg a következő részletet. Csak az egyes soroknak megfelelő oszlopok számát jeleníti meg az Ön alapos megértése érdekében.
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();
}
}
}
Kimenet
0. sor: 0. oszlop 1. oszlop 2. oszlop 3. sor 1. oszlop: 0. oszlop 1. oszlop 2. oszlop 3. sor 2. sor: 0. oszlop 1. oszlop 2. oszlop 3. 3. sor: 0. oszlop 1. oszlop 2. oszlop 3.
Hogyan nyomtathatunk 2D-s tömböt Java-ban?
Miután megismerte a 2D tömb bejárását, nézzünk meg néhány módszert a 2D tömbök Java nyelven történő nyomtatására.Beágyazott „for” hurok használata
Ez a legegyszerűbb módja a mátrix nyomtatásának Java nyelven.
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);
}
}
Kimenet
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
A „for-each” ciklus használata
Íme egy másik módszer a 2D tömbök Java nyelven történő nyomtatására a „ foreach loop ” használatával. Ez a Java által biztosított speciális huroktípus, ahol az int[]sor végigfut a mátrix minden során. Míg az „elem” változó a soron keresztül az oszlopindexben elhelyezett minden elemet tartalmazni fog.
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);
}
}
Kimenet
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Az „Arays.toString()” metódus használata
A Java Arrays.toString() metódusa minden neki átadott paramétert egyetlen tömbbé alakít, és a beépített metódusával nyomtatja ki. Létrehoztunk egy dummy String 2D tömböt a játékhoz. Ugyanez a módszer működik egész tömbök esetén is. Javasoljuk, hogy gyakorolja az edzéshez.
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);
}
}
Kimenet
[Szia, Karen vagyok] [Új vagyok a Java-ban] [Imádok úszni] [néha billentyűzök]
GO TO FULL VERSION