¿Qué es una Matriz / Matriz 2D en Java?
“Una matriz es una colección de números ordenados en un número fijo de filas y columnas”. Por lo general, estos son números reales. En general, las matrices pueden contener números complejos, pero en aras de la simplicidad, aquí solo usaremos números enteros. Echemos un vistazo a cómo se ve una matriz. Aquí hay un ejemplo de una matriz con 4 filas y 4 columnas.

Declarar e inicializar una matriz 2D
Aquí hay algunas formas diferentes de declarar solo el tamaño de la matriz o inicializarla sin mencionar el tamaño.
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" } };
}
}
Recorrido de matriz 2D
Todos sabemos cómo atravesar arreglos regulares en Java. Para matrices 2D tampoco es difícil. Comúnmente usamos bucles 'for' anidados para esto. Algunos principiantes pueden pensar que es un concepto extraño, pero tan pronto como profundices en él, podrás implementarlo con algo de práctica. Echa un vistazo al siguiente fragmento. Solo muestra el número de columnas correspondientes a cada fila para su comprensión completa.
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();
}
}
}
Producción
fila 0: columna 0 columna 1 columna 2 columna 3
fila 1: columna 0 columna 1 columna 2 columna 3
fila 2: columna 0 columna 1 columna 2 columna 3
fila 3: columna 0 columna 1 columna 2 columna 3
¿Cómo imprimir una matriz 2D en Java?
Una vez que esté familiarizado con el recorrido de matrices 2D, veamos algunas formas de imprimir matrices 2D en Java.Uso del bucle "for" anidado
Esta es la forma más básica de imprimir la matriz en 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);
}
}
Producción
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
Usando el bucle "para cada uno"
Aquí hay otra forma de imprimir arreglos 2D en Java usando " bucle foreach ". Este es un tipo especial de bucle proporcionado por Java, donde int[]row recorrerá cada fila de la matriz. Mientras que la variable "elemento" contendrá cada elemento colocado en el índice de la columna a través de la fila.
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);
}
}
Producción
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
Usando el método “Arays.toString()”
El método Arrays.toString() en Java, convierte cada parámetro que se le pasa como una sola matriz y usa su método incorporado para imprimirlo. Hemos creado una matriz ficticia de String 2D para jugar. El mismo método también funciona para matrices enteras. Te animamos a que lo practiques para tu ejercicio.
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);
}
}
Producción
[Hola, soy Karen]
[Soy nuevo en Java]
[Me encanta nadar]
[a veces toco el teclado]
GO TO FULL VERSION