Conceptos básicos de matrices en Java Matrices multidimensionales se puede definir en palabras simples como una matriz de matrices. Los datos en matrices multidimensionales se almacenan en forma tabular (en orden principal de filas).
Sintaxis:
tipo de datos [1.ª dimensión][2.ª dimensión][]..[Enésima dimensión] nombre_matriz = nuevo tipo de datos [tamaño1][tamaño2]….[tamañoN];
dónde:
- tipo de datos : Tipo de datos que se almacenarán en la matriz. Por ejemplo: int, char, etc.
- dimensión : La dimensión de la matriz creada. Por ejemplo: 1D, 2D, etc.
- nombre_matriz : Nombre de la matriz
- tamaño1, tamaño2,…, tamañoN : Tamaños de las dimensiones respectivamente.
Ejemplos:
Two dimensional array: int[][] twoD_arr = new int[10][20]; Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>
Tamaño de matrices multidimensionales : El número total de elementos que se pueden almacenar en una matriz multidimensional se puede calcular multiplicando el tamaño de todas las dimensiones.
Por ejemplo: la matriz int[][] x = nuevo int[10][20] Puede almacenar un total de (10*20) = 200 elementos. De manera similar, matriz int[][][] x = nuevo int[5][10][20] Puede almacenar un total de (5*10*20) = 1000 elementos.
Aplicación de matriz multidimensional
● Se utilizan matrices multidimensionales para almacenar los datos en forma tabular. Por ejemplo, almacenar el número de lista y las calificaciones de un estudiante se puede hacer fácilmente utilizando matrices multidimensionales. Otro uso común es almacenar las imágenes en matrices 3D.
● En preguntas de programación dinámica se utilizan matrices multidimensionales que sirven para representar los estados del problema.
● Aparte de estos, también tienen aplicaciones en muchos problemas algorítmicos estándar como: multiplicación de matrices, representación de matrices de adyacencia en gráficos, problemas de búsqueda de cuadrículas.
Matriz bidimensional (matriz 2D)
Una matriz bidimensional es la forma más simple de una matriz multidimensional. Una matriz bidimensional puede verse como una matriz unidimensional para facilitar su comprensión.
Método indirecto de declaración:
- Declaración – Sintaxis:
data_type[][] array_name = new data_type[x][y]; For example: int[][] arr = new int[10][20];>
- Inicialización – Sintaxis:
array_name[row_index][column_index] = value; For example: arr[0][0] = 1;>
Ejemplo: 1
Java
import> java.io.*;> public> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr =>new> int>[>10>][>20>];> >arr[>0>][>0>] =>1>;> >System.out.println(>'arr[0][0] = '> + arr[>0>][>0>]);> >}> }> |
>
>Producción
arr[0][0] = 1>
Ejemplo: Implementación de una matriz 2D con valores predeterminados con matriz 4*4
Java
public> class> TwoDArray {> >public> static> void> main(String[] args) {> >int> rows =>4>;> >int> columns =>4>;> >int>[][] array =>new> int>[rows][columns];> >int> value =>1>;> >for> (>int> i =>0>; i for (int j = 0; j array[i][j] = value; value++; } } System.out.println('The 2D array is: '); for (int i = 0; i for (int j = 0; j System.out.print(array[i][j] + ' '); } System.out.println(); } } }> |
>
>Producción
The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>
Explicación:
- El número de filas y columnas se especifica mediante las variables filas y columnas. La matriz 2D se crea utilizando el nuevo operador, que asigna memoria para la matriz. El tamaño de la matriz se especifica mediante filas y columnas.
Método Directo de Declaración: Sintaxis:
data_type[][] array_name = { {valueR1C1, valueR1C2, ....}, {valueR2C1, valueR2C2, ....} }; For example: int[][] arr = {{1, 2}, {3, 4}};> Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr = { {>1>,>2> }, {>3>,>4> } };> >for> (>int> i =>0>; i <>2>; i++)> >for> (>int> j =>0>; j <>2>; j++)> >System.out.println(>'arr['> + i +>']['> + j +>'] = '> >+ arr[i][j]);> >}> }> |
>
>Producción
arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>
Accediendo a elementos de matrices bidimensionales
Los elementos en matrices bidimensionales comúnmente se denominan x[i][j] donde 'i' es el número de fila y 'j' es el número de columna.
Sintaxis:
x[row_index][column_index]>
Por ejemplo:
int[][] arr = new int[10][20]; arr[0][0] = 1;>
El ejemplo anterior representa el elemento presente en la primera fila y la primera columna. Nota : En matrices si el tamaño de la matriz es N. Su índice será de 0 a N-1. Por lo tanto, para row_index 2, el número de fila real es 2+1 = 3. Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr = { {>1>,>2> }, {>3>,>4> } };> >System.out.println(>'arr[0][0] = '> + arr[>0>][>0>]);> >}> }> |
>
>Producción
arr[0][0] = 1>
Representación de matriz 2D en formato tabular:
cómo obtener emojis de iPhone en Android
Una matriz bidimensional puede verse como una tabla con filas 'x' y columnas 'y' donde el número de fila varía de 0 a (x-1) y el número de columna varía de 0 a (y-1). A continuación se muestra una matriz bidimensional 'x' con 3 filas y 3 columnas:

Imprima una matriz 2D en formato tabular:
Para generar todos los elementos de una matriz bidimensional, utilice bucles for anidados. Para esto se requieren dos bucles for, uno para recorrer las filas y otro para recorrer las columnas.
Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr = { {>1>,>2> }, {>3>,>4> } };> >for> (>int> i =>0>; i <>2>; i++) {> >for> (>int> j =>0>; j <>2>; j++) {> >System.out.print(arr[i][j] +>' '>);> >}> >System.out.println();> >}> >}> }> |
>
>Producción
1 2 3 4>
Ejemplo: implementación de una matriz 2D con entrada del usuario
Java
import> java.util.Scanner;> public> class> Main {> >public> static> void> main(String[] args)> >{> >Scanner scan =>new> Scanner(System.in);> >System.out.print(>'Enter number of rows: '>);> >int> rows = scan.nextInt();> >System.out.print(>'Enter number of columns: '>);> >int> columns = scan.nextInt();> >int>[][] multidimensionalArray=>new> int>[rows][columns];> >// Now you can use the array like a regular> >// 2-dimensional array> >for> (>int> i =>0>; i for (int j = 0; j multidimensionalArray[i][j]= (i + 1) * (j + 1); } } for (int i = 0; i for (int j = 0; j System.out.print(multidimensionalArray[i][j]+ ' '); } System.out.println(); } scan.close(); } }> |
>
>
Producción
Enter number of rows: 3 Enter number of columns: 3 1 2 3 2 4 6 3 6 9>
- Este código solicita al usuario que ingrese el número de filas y columnas para la matriz bidimensional. La clase Scanner se utiliza para leer la entrada del usuario. Luego crea una matriz bidimensional de números enteros con el número especificado de filas y columnas, y asigna a cada elemento de la matriz i*j.
- Si desea crear una matriz multidimensional con más de dos dimensiones, puede utilizar el mismo método para crear una matriz de matrices. Por ejemplo, para crear una matriz tridimensional, puede crear una matriz de matrices bidimensionales.
Matriz tridimensional (matriz 3D)
Una matriz tridimensional es una forma compleja de una matriz multidimensional. Una matriz tridimensional puede verse como una matriz bidimensional para una mejor comprensión.
Método indirecto de declaración:
- Declaración – Sintaxis:
data_type[][][] array_name = new data_type[x][y][z]; For example: int[][][] arr = new int[10][20][30];>
- Inicialización – Sintaxis:
array_name[array_index][row_index][column_index] = value; For example: arr[0][0][0] = 1;>
Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][][] arr =>new> int>[>10>][>20>][>30>];> >arr[>0>][>0>][>0>] =>1>;> >System.out.println(>'arr[0][0][0] = '> + arr[>0>][>0>][>0>]);> >}> }> |
>
>Producción
arr[0][0][0] = 1>
Método Directo de Declaración: Sintaxis:
data_type[][][] array_name = { { {valueA1R1C1, valueA1R1C2, ....}, {valueA1R2C1, valueA1R2C2, ....} }, { {valueA2R1C1, valueA2R1C2, ....}, {valueA2R2C1, valueA2R2C2, ....} } }; For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };> Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][][] arr = { { {>1>,>2> }, {>3>,>4> } }, { {>5>,>6> }, {>7>,>8> } } };> >for> (>int> i =>0>; i <>2>; i++)> >for> (>int> j =>0>; j <>2>; j++)> >for> (>int> z =>0>; z <>2>; z++)> >System.out.println(>'arr['> + i> >+>']['> >+ j +>']['> >+ z +>'] = '> >+ arr[i][j][z]);> >}> }> |
>
>Producción
arr[0][0][0] = 1 arr[0][0][1] = 2 arr[0][1][0] = 3 arr[0][1][1] = 4 arr[1][0][0] = 5 arr[1][0][1] = 6 arr[1][1][0] = 7 arr[1][1][1] = 8>
Accediendo a elementos de matrices tridimensionales
Los elementos en matrices tridimensionales comúnmente se denominan x[i][j][k] donde 'i' es el número de la matriz, 'j' es el número de fila y 'k' es el número de columna.
Sintaxis:
x[array_index][row_index][column_index]>
Por ejemplo:
int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>
El ejemplo anterior representa el elemento presente en la primera fila y la primera columna de la primera matriz en la matriz 3D declarada.
Nota : En matrices si el tamaño de la matriz es N. Su índice será de 0 a N-1. Por lo tanto, para row_index 2, el número de fila real es 2+1 = 3.
Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][][] arr = { { {>1>,>2> }, {>3>,>4> } }, { {>5>,>6> }, {>7>,>8> } } };> >System.out.println(>'arr[0][0][0] = '> + arr[>0>][>0>][>0>]);> >}> }> |
>
>Producción
arr[0][0][0] = 1>
Representación de matriz 3D en formato tabular:
Una matriz tridimensional puede verse como una tabla de matrices con filas 'x' y columnas 'y' donde el número de fila varía de 0 a (x-1) y el número de columna varía de 0 a (y-1). A continuación se muestra una matriz tridimensional con 3 matrices que contienen 3 filas y 3 columnas:

Imprima una matriz 3D en formato tabular:
Para generar todos los elementos de una matriz tridimensional, utilice bucles for anidados. Para esto se requieren tres bucles for: uno para recorrer las matrices, el segundo para recorrer las filas y otro para recorrer las columnas.
Ejemplo:
Java
import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][][] arr = { { {>1>,>2> }, {>3>,>4> } },> >{ {>5>,>6> }, {>7>,>8> } } };> >for> (>int> i =>0>; i <>2>; i++) {> >for> (>int> j =>0>; j <>2>; j++) {> >for> (>int> k =>0>; k <>2>; k++) {> >System.out.print(arr[i][j][k] +>' '>);> >}> >System.out.println();> >}> >System.out.println();> >}> >}> }> |
>
>Producción
1 2 3 4 5 6 7 8>
Insertar una matriz multidimensional durante el tiempo de ejecución:
Este tema se ve obligado a tomar entradas definidas por el usuario en una matriz multidimensional durante el tiempo de ejecución. Se centra en que el usuario primero proporcione todas las entradas al programa durante el tiempo de ejecución y, después de todas las entradas ingresadas, el programa dará resultados con respecto a cada entrada en consecuencia. Es útil cuando el usuario desea realizar entradas para múltiples casos de prueba con múltiples valores diferentes primero y, una vez hechas todas esas cosas, el programa comenzará a proporcionar resultados. Como ejemplo, encontremos el número total de números pares e impares en una matriz de entrada. Aquí usaremos el concepto de matriz bidimensional.
Aquí hay algunos puntos que explican el uso de los diversos elementos en el próximo código:
- El número entero de fila se considera como el número de casos de prueba y los valores de columna se consideran valores en cada caso de prueba.
- Un bucle for() se utiliza para actualizar el número de caso de prueba y otro bucle for() se utiliza para tomar los valores de matriz respectivos.
- Una vez realizado todo el ingreso de entrada, nuevamente se usan dos bucles for() de la misma manera para ejecutar el programa de acuerdo con la condición especificada.
- La primera línea de entrada es el número total de TestCases.
- La segunda línea muestra el número total de valores de la primera matriz.
- La tercera línea proporciona valores de matriz y así sucesivamente.
Implementación:
Java
import> java.io.*;> import> java.util.Scanner;> class> GFGTestCase {> >public> static> void> main(String[] args)> >{> >// Scanner class to take> >// values from console> >Scanner scanner =>new> Scanner(System.in);> >// totalTestCases = total> >// number of TestCases> >// eachTestCaseValues => >// values in each TestCase as> >// an Array values> >int> totalTestCases, eachTestCaseValues;> >// takes total number of> >// TestCases as integer number> >totalTestCases = scanner.nextInt();> >// An array is formed as row> >// values for total testCases> >int>[][] arrayMain =>new> int>[totalTestCases][];> >// for loop to take input of> >// values in each TestCase> >for> (>int> i =>0>; i eachTestCaseValues = scanner.nextInt(); arrayMain[i] = new int[eachTestCaseValues]; for (int j = 0; j arrayMain[i][j] = scanner.nextInt(); } } // All input entry is done. // Start executing output // according to condition provided for (int i = 0; i // Initialize total number of // even & odd numbers to zero int nEvenNumbers = 0, nOddNumbers = 0; // prints TestCase number with // total number of its arguments System.out.println('TestCase ' + i + ' with ' + arrayMain[i].length + ' values:'); for (int j = 0; j System.out.print(arrayMain[i][j] + ' '); // even & odd counter updated as // eligible number is found if (arrayMain[i][j] % 2 == 0) { nEvenNumbers++; } else { nOddNumbers++; } } System.out.println(); // Prints total numbers of // even & odd System.out.println( 'Total Even numbers: ' + nEvenNumbers + ', Total Odd numbers: ' + nOddNumbers); } } } // This code is contributed by Udayan Kamble.> |
>
>
Producción:
Input: 2 2 1 2 3 1 2 3 Output: TestCase 0 with 2 values: 1 2 Total Even numbers: 1, Total Odd numbers: 1 TestCase 1 with 3 values: 1 2 3 Total Even numbers: 1, Total Odd numbers: 2 Input: 3 8 1 2 3 4 5 11 55 66 5 100 101 55 35 108 6 3 80 11 2 1 5 Output: TestCase 0 with 8 values: 1 2 3 4 5 11 55 66 Total Even numbers: 3, Total Odd numbers: 5 TestCase 1 with 5 values: 100 101 55 35 108 Total Even numbers: 2, Total Odd numbers: 3 TestCase 2 with 6 values: 3 80 11 2 1 5 Total Even numbers: 2, Total Odd numbers: 4>