Che cos'è una matrice / matrice 2D in Java?
"Una matrice è una raccolta di numeri disposti in un numero fisso di righe e colonne." Di solito questi sono numeri reali. In generale, le matrici possono contenere numeri complessi, ma per semplicità useremo qui solo numeri interi. Diamo un'occhiata a come appare una matrice. Ecco un esempio di matrice con 4 righe e 4 colonne.

Dichiara e inizializza un array 2D
Ecco alcuni modi diversi per dichiarare solo la dimensione dell'array o per inizializzarlo senza menzionare la dimensione.
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" } };
}
}
Attraversamento di array 2D
Sappiamo tutti come attraversare array regolari in Java. Anche per gli array 2D non è difficile. Usiamo comunemente cicli 'for' nidificati per questo. Alcuni principianti potrebbero pensarlo come un concetto alieno, ma non appena lo approfondisci sarai in grado di implementarlo con un po' di pratica. Dai un'occhiata al seguente frammento. Visualizza solo il numero di colonne corrispondenti a ciascuna riga per una comprensione approfondita.
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();
}
}
}
Produzione
riga 0: col 0 col 1 col 2 col 3 riga 1: col 0 col 1 col 2 col 3 riga 2: col 0 col 1 col 2 col 3 riga 3: col 0 col 1 col 2 col 3
Come stampare un array 2D in Java?
Dopo aver acquisito familiarità con l'attraversamento di array 2D, diamo un'occhiata ad alcuni modi per stampare array 2D in Java.Utilizzo del ciclo "for" nidificato
Questo è il modo più semplice per stampare la matrice in 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);
}
}
Produzione
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Utilizzo del ciclo "for-each".
Ecco un altro modo per stampare array 2D in Java usando " foreach loop ". Questo è un tipo speciale di ciclo fornito da Java, in cui int[]row eseguirà un ciclo su ogni riga nella matrice. Considerando che, la variabile "elemento" conterrà ogni elemento posizionato all'indice della colonna attraverso la riga.
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);
}
}
Produzione
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
Utilizzando il metodo "Arays.toString ()".
Il metodo Arrays.toString() in Java, converte ogni parametro passato come un singolo array e utilizza il suo metodo integrato per stamparlo. Abbiamo creato un array fittizio String 2D con cui giocare. Lo stesso metodo funziona anche per gli array interi. Ti invitiamo a praticarlo per il tuo esercizio.
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);
}
}
Produzione
[Ciao, sono Karen] [Sono nuova di Java] [Adoro nuotare] [a volte suono la tastiera]
GO TO FULL VERSION