Ir al contenido

Intro

Una matriz es una estructura de datos compuesta por un arreglo de arreglos, lo que implica que cada uno de sus elementos también es un arreglo individual. Si bien esto puede resultar confuso, se puede entender de la siguiente manera:

  • En lugar de tener un solo arreglo que contiene todos los datos, una matriz en Java es un arreglo de referencias a otros arreglos. Es decir, el arreglo principal contiene “otros arreglos” como sus elementos.
  • Estos arreglos internos son los que representan las filas de la matriz.
  • Por ejemplo, una matriz de 3x2 (3 filas y 2 columnas) en realidad es un arreglo que contiene 3 referencias a 3 arreglos distintos, y cada uno de esos arreglos tiene 2 elementos.

Un elemento dentro de una matriz es un valor almacenado en una posición específica, determinada por un índice de fila y un índice de columna. En otras palabras, un elemento es el dato contenido en la intersección de una fila y una columna.

En Java, cada fila dentro de una matriz es un arreglo independiente, lo que significa que, aunque todas las filas pertenecen a la misma matriz, cada fila es en realidad un objeto separado en memoria. Debido a esta estructura, es posible que las filas de una matriz no tengan la misma cantidad de columnas, permitiendo la creación de matrices irregulares.

Visualmente, una matriz puede representarse como una tabla donde:

  • La primera dimensión corresponde a las filas.
  • La segunda dimensión corresponde a las columnas.

Al igual que en los arreglos en Java, los índices en una matriz comienzan en cero.

Ejemplo de una matriz de 4 filas por 6 columnas:
Sección titulada «Ejemplo de una matriz de 4 filas por 6 columnas:»
Índice de fila Elementos de la fila
0 x x x x x x
1 x x x x x x
2 x x x x x x
3 x x x x x x
  • El índice de la última fila es número de filas - 1 (en este caso, 3).
  • El índice de la última columna es número de columnas - 1 (en este caso, 5).
  • Para acceder a un elemento en la posición (fila, columna), se utiliza la notación matriz[fila][columna].

Declaración y Creación de Matrices en Java

Sección titulada «Declaración y Creación de Matrices en Java»

La declaración de una matriz en Java sigue la siguiente sintaxis:

// Declaración de una matriz de enteros de 2 filas por 3 columnas
int[][] numeros = new int[2][3];
  • El primer corchete [2] indica la cantidad de filas.
  • El segundo corchete [3] indica la cantidad de columnas.
  • Todas las posiciones de la matriz se inicializan con valores por defecto dependiendo del tipo de dato.
    • int → 0
    • double → 0.0
    • boolean → false
    • char → '�' (carácter nulo)
    • Tipos de referencia → null

Ambas formas siguientes son equivalentes:

int[][] matriz; // Forma más común
int matriz[][]; // También válida, pero menos utilizada

Para acceder o modificar un elemento en la matriz se debe indicar la fila y luego la columna.

numeros[0][0] = 1; // Asignación en la primera fila, primera columna
numeros[0][1] = 2;
numeros[0][2] = 3;
numeros[1][0] = 4;
numeros[1][1] = 5;
numeros[1][2] = 6;

En lugar de asignar manualmente cada valor, una matriz también puede inicializarse directamente con valores predefinidos:

int[][] matriz = {
{1, 2, 3},
{4, 5, 6}
};

Para obtener el número de filas y columnas de una matriz:

int filas = matriz.length; // Cantidad de filas
int columnas = matriz[0].length; // Cantidad de columnas en la primera fila

Se pueden utilizar bucles anidados for para recorrer la matriz:

for (int i = 0; i < matriz.length; i++) { // Recorre filas
for (int j = 0; j < matriz[i].length; j++) { // Recorre columnas
System.out.print(matriz[i][j] + " ");
}
System.out.println(); // Salto de línea para cada fila
}

Además de matrices de tipos primitivos, Java permite matrices de objetos:

class Producto {
String nombre;
double precio;
}
Producto[][] productos = new Producto[2][2];
productos[0][0] = new Producto();
productos[0][0].nombre = "Laptop";
productos[0][0].precio = 1200.99;