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 sintaxis no tenía sentido.
java
multidimensional-array
AppSensei
fuente
fuente
Respuestas:
Intenta lo siguiente:
... que es una mano corta para algo como esto:
Tenga en cuenta que cada elemento se inicializará al valor predeterminado para
int
, por0
lo que lo anterior también es equivalente a:fuente
new int[][]
en=new int[][]{...}
variante? ¿Podemos simplemente escribir={...}
?new
palabras clave.int array[][] = new int[3][];
VSint array[][] = new int[][3];
? cuál es legal ya que he leído ambas versiones en alguna parte.Podemos declarar una matriz bidimensional y almacenar elementos directamente en el momento de su declaración como:
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 declaración escrita anteriormente: 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 declaración: puede obtener 3 filas y 5 columnas, por lo que la JVM crea 3 * 5 = 15 bloques de memoria. Estos bloques se pueden denominar individualmente como:
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 declarar la matriz primero y luego asignarle memoria utilizando un nuevo operador.
Al combinar los dos anteriores podemos escribir:
fuente
Puede crearlos tal como lo han mencionado otros. Un punto más para agregar: incluso puede crear una matriz bidimensional sesgada con cada fila, no necesariamente con el mismo número de columnas, como esta:
fuente
int array[][] = new int[3][];
VSint array[][] = new int[][3];
? cuál es legal ya que he leído ambas versiones en alguna parte.El idioma más común para crear una matriz bidimensional con 5 filas y 10 columnas es:
Alternativamente, puede usar lo siguiente, que es más similar a lo que tiene, aunque necesita inicializar explícitamente cada fila:
fuente
Object[][] ary2d = new Object[5][10];
entonces, aún debe inicializar cada elemento de la matriz 2D.null
caso de forma segura para cualquier no primitivo. Si debe o no inicializar cada elemento depende completamente de su diseño. Además, solo para aclarar: las primitivas no pueden ser nulas y instanciarse a un valor predeterminado definido si no se le asigna uno. Por ejemplo, unint
no puede ser nulo y cuando diceint i;
sin asignar un valor,0
se utiliza el predeterminado . Lea sobre esto aquíTambién es posible declararlo de la siguiente manera. No es un buen diseño, pero funciona.
fuente
Tratar:
Tenga en cuenta que en su código solo la primera línea de la matriz 2D se inicializa a 0. Las líneas 2 a 5 ni siquiera existen. Si intenta imprimirlos, obtendrá
null
para todos ellos.fuente
fuente
En Java, una matriz bidimensional puede declararse igual que una matriz unidimensional. En una matriz unidimensional puedes escribir como
donde int es un tipo de datos, array [] es una declaración de matriz y
new array
es una matriz con sus objetos con cinco índices.De esa manera, puede escribir una matriz bidimensional de la siguiente manera.
Aquí
array
hay un tipo de datos int. En primer lugar, he declarado en una matriz unidimensional de ese tipo, luego se crea una matriz de 3 filas y 4 columnas.En su código
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 que desee.
fuente
¡Disfrutar!
fuente
Intenta de esta manera:
fuente
Estos tipos de matrices se conocen como matrices irregulares en Java:
En este escenario, cada fila de la matriz contiene el número diferente 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 compilación como a continuación:
Puede iterar fácilmente todos los elementos en su matriz:
fuente
En realidad, Java no tiene una matriz multidimensional en sentido matemático. Lo que Java tiene es solo una matriz de matrices, una matriz donde cada elemento también es una matriz. Es por eso que el requisito absoluto para inicializarlo es el tamaño de la primera dimensión. Si se especifican los demás, creará una matriz con el valor predeterminado.
También nos da una peculiaridad. El tamaño de la submatriz no se puede cambiar agregando más elementos, pero podemos hacerlo asignando una nueva matriz de tamaño arbitrario.
fuente