Sintaxis para crear una matriz bidimensional

Considerar:

int[][] multD = new int[5][]; multD[0] = new int[10]; 

¿Es así como creas una matriz bidimensional con 5 filas y 10 columnas?

Vi este código en línea, pero la syntax no tenía sentido.

Pruebe lo siguiente:

 int[][] multi = new int[5][10]; 

… que es una mano corta para algo como esto:

 int[][] multi = new int[5][]; multi[0] = new int[10]; multi[1] = new int[10]; multi[2] = new int[10]; multi[3] = new int[10]; multi[4] = new int[10]; 

Tenga en cuenta que cada elemento se inicializará con el valor predeterminado para int , 0 , por lo que lo anterior también es equivalente a:

 int[][] multi = new int[][]{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; 

Podemos declarar una matriz bidimensional y almacenar elementos directamente en el momento de su statement como:

 int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}}; 

Aquí int representa elementos de tipo entero almacenados en la matriz y el nombre de la matriz es ‘marcas’. int es el tipo de datos para todos los elementos representados dentro de las llaves “{” y “}” porque una matriz es una colección de elementos que tienen el mismo tipo de datos.

Volviendo a nuestra statement escrita arriba: cada fila de elementos debe escribirse dentro de las llaves. Las filas y los elementos en cada fila deben estar separados por comas.

Ahora observe la afirmación: puede obtener 3 filas y 5 columnas, por lo que la JVM crea 3 * 5 = 15 bloques de memoria. Estos bloques se pueden referir individualmente ta como:

 marks[0][0] marks[0][1] marks[0][2] marks[0][3] marks[0][4] marks[1][0] marks[1][1] marks[1][2] marks[1][3] marks[1][4] marks[2][0] marks[2][1] marks[2][2] marks[2][3] marks[2][4] 

NOTA:
Si desea almacenar n elementos, el índice de la matriz comienza desde cero y termina en n-1 . Otra forma de crear una matriz bidimensional es declarando la matriz primero y luego asignándola a la memoria mediante el uso de un nuevo operador.

 int marks[][]; // declare marks array marks = new int[3][5]; // allocate memory for storing 15 elements 

Al combinar los dos anteriores, podemos escribir:

 int marks[][] = new int[3][5]; 

Puede crearlos tal como lo mencionaron otros. Un punto más para agregar: incluso puede crear una matriz asimétrica bidimensional con cada fila, que no necesariamente tenga el mismo número de columnas, como esta:

 int array[][] = new int[3][]; array[0] = new int[3]; array[1] = new int[2]; array[2] = new int[5]; 

La expresión más común para crear una matriz bidimensional con 5 filas y 10 columnas es:

 int[][] multD = new int[5][10]; 

Alternativamente, podría usar lo siguiente, que es más similar a lo que tiene, aunque necesita inicializar explícitamente cada fila:

 int[][] multD = new int[5][]; for (int i = 0; i < 5; i++) { multD[i] = new int[10]; } 

Tratar:

 int[][] multD = new int[5][10]; 

Tenga en cuenta que en su código solo la primera línea de la matriz 2D se inicializa a 0. La línea 2 a 5 ni siquiera existe. Si intenta imprimirlos, obtendrá null para todos ellos.

En Java, una matriz bidimensional puede declararse como una matriz unidimensional. En una matriz unidimensional puedes escribir como

  int array[] = new int[5]; 

donde int es un tipo de datos, array [] es una statement de matriz, y new array es una matriz con sus objetos con cinco índices.

Así, puedes escribir una matriz bidimensional de la siguiente manera.

  int array[][]; array = new int[3][4]; 

Aquí array es un tipo de datos int. Primero he declarado en una matriz unidimensional de esos tipos, luego se crea una matriz de 3 filas y 4 columnas.

En tu código

 int[][] multD = new int[5][]; multD[0] = new int[10]; 

significa que ha creado una matriz bidimensional, con cinco filas. En la primera fila hay 10 columnas. En Java, puede seleccionar el tamaño de columna para cada fila como desee.

También es posible declararlo de la siguiente manera. No es un buen diseño, pero funciona.

 int[] twoDimIntArray[] = new int[5][10]; 
 int [][] twoDim = new int [5][5]; int a = (twoDim.length);//5 int b = (twoDim[0].length);//5 for(int i = 0; i < a; i++){ // 1 2 3 4 5 for(int j = 0; j  
 int rows = 5; int cols = 10; int[] multD = new int[rows * cols]; for (int r = 0; r < rows; r++) { for (int c = 0; c < cols; c++) { int index = r * cols + c; multD[index] = index * 2; } } 

¡Disfrutar!

Pruebe de esta manera:

 int a[][] = {{1,2}, {3,4}}; int b[] = {1, 2, 3, 4}; 

Estos tipos de matrices se conocen como matrices dentadas en Java:

 int[][] multD = new int[3][]; multD[0] = new int[3]; multD[1] = new int[2]; multD[2] = new int[5]; 

En este escenario, cada fila de la matriz contiene la diferente cantidad de columnas. En el ejemplo anterior, la primera fila tendrá tres columnas, la segunda fila tendrá dos columnas y la tercera fila tendrá cinco columnas. Puede inicializar esta matriz en tiempo de comstackción como se muestra a continuación:

  int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}}; 

Puede iterar fácilmente todos los elementos en su matriz:

 for (int i = 0; i