Intro
Matrices
Sección titulada «Matrices»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.
Índices en Matrices
Sección titulada «Índices en Matrices»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ónmatriz[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 columnasint[][] 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→0double→0.0boolean→falsechar→'�'(carácter nulo)- Tipos de referencia →
null
Formas de Declaración
Sección titulada «Formas de Declaración»Ambas formas siguientes son equivalentes:
int[][] matriz; // Forma más comúnint matriz[][]; // También válida, pero menos utilizadaAcceso y Modificación de Elementos
Sección titulada «Acceso y Modificación de Elementos»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 columnanumeros[0][1] = 2;numeros[0][2] = 3;
numeros[1][0] = 4;numeros[1][1] = 5;numeros[1][2] = 6;Inicialización de Matrices
Sección titulada «Inicialización de Matrices»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}};Obtener el Tamaño de una Matriz
Sección titulada «Obtener el Tamaño de una Matriz»Para obtener el número de filas y columnas de una matriz:
int filas = matriz.length; // Cantidad de filasint columnas = matriz[0].length; // Cantidad de columnas en la primera filaRecorrer una Matriz con Bucles
Sección titulada «Recorrer una Matriz con Bucles»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}Matrices con Tipos de Referencia
Sección titulada «Matrices con Tipos de Referencia»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;