Hva er en Matrix / 2D Array i Java?
"En matrise er en samling av tall ordnet i et fast antall rader og kolonner." Vanligvis er dette reelle tall. Generelt kan matriser inneholde komplekse tall, men for enkelhets skyld vil vi kun bruke hele tall her. La oss ta en titt på hvordan en matrise ser ut. Her er et eksempel på en matrise med 4 rader og 4 kolonner.

Erklær og initialiser en 2D-array
Her er noen forskjellige måter å enten bare deklarere størrelsen på matrisen, eller initialisere den uten å nevne størrelsen.
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
Vi vet alle hvordan man krysser vanlige arrays i Java. For 2D-matriser er det heller ikke vanskelig. Vi bruker vanligvis nestede 'for'-løkker for dette. Noen nybegynnere kan tenke på det som et fremmed konsept, men så snart du graver dypere inn i det, vil du kunne implementere dette med litt øvelse. Ta en titt på følgende utdrag. Den viser bare antall kolonner som tilsvarer hver rad for din grundige forståelse.
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();
}
}
}
Produksjon
rad 0: col 0 col 1 col 2 col 3 rad 1: col 0 col 1 col 2 col 3 rad 2: col 0 col 1 col 2 col 3 rad 3: col 0 col 1 col 2 col 3
Hvordan skrive ut en 2D-array i Java?
Etter at du er kjent med 2D-array-traversal, la oss se på noen få måter å skrive ut 2D-arrayer på i Java.Bruker Nested "for" loop
Dette er den mest grunnleggende måten å skrive ut matrisen på i 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);
}
}
Produksjon
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Bruker "for-hver"-løkke
Her er en annen måte å skrive ut 2D-matriser i Java ved å bruke " foreach loop ". Dette er en spesiell type sløyfe levert av Java, hvor int[]raden vil sløyfe gjennom hver rad i matrisen. Mens variabelen "element" vil inneholde hvert element plassert i kolonneindeksen gjennom raden.
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);
}
}
Produksjon
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Ved å bruke "Arays.toString()"-metoden
Arrays.toString() -metoden i Java, konverterer hver parameter som sendes til den som en enkelt matrise og bruker den innebygde metoden for å skrive den ut. Vi har laget en dummy String 2D-array for å leke rundt. Den samme metoden fungerer også for heltallsmatriser. Vi oppfordrer deg til å praktisere det for treningen din.
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);
}
}
Produksjon
[Hei, jeg er Karen] [Jeg er ny på Java] [Jeg elsker å svømme] [noen ganger spiller jeg keyboard]
GO TO FULL VERSION