2012-02-16 10 views
11

Nunca he hecho esto antes y no puedo encontrar la respuesta. Puede que este no sea el tipo de datos correcto para usar para esto, pero solo quiero asignar un int, luego otro int sin un bucle for en una matriz 2D, los valores serán reales de otra función, pero para simplificar he acaba de utilizar int I y K, así es como pensé que lo haría, pero no es:¿Asigna explícitamente valores a una matriz 2D?

int contents[][] = new int[2][2]; 
      contents[0][0] = {int i, int k} 
      contents[1][1] = {int i, int k} 
      contents[2][2] = {int i, int k} 

TIA - siéntase libre de apuntar en la dirección de una mejor estructura de datos para hacer esto si yo Estoy ladrando el árbol equivocado.

+0

¿Por qué no hacer iteración sobre la matriz y asignar a través de la llamada al método.? para (...) contenidos [i] [j] = {xMethod(), yMethod()}; – Juvanis

Respuesta

26

La mejor manera es simplemente declarar y asignar todos los valores a la vez. Como se muestra here. Java calculará automáticamente el tamaño de la matriz y asignará los valores de esta manera.

int contents[][] = { {1, 2} , { 4, 5} }; 

Alternativamente, si usted necesita para declarar la matriz en primer lugar, recordar que cada contents[0][0] puntos a un único valor entero no una serie de dos. Así que para obtener la misma tarea que el anterior que iba a escribir:

contents[0][0] = 1; 
contents[0][1] = 2; 
contents[1][0] = 4; 
contents[1][1] = 5; 

Finalmente debo señalar que 2 por 2 matriz es índice de 0 a 1 no 0 a 2.

Espero que ayude.

+0

votando por la respuesta más completa. –

0

¿Es esto lo que quieres decir?

int contents[][] = new int[2][2]; 
contents[0][0] = 1; 
contents[1][1] = 2; 
... 

Eso le permitirá asignar valores individuales a los elementos en su matriz 2D, uno a la vez.

También tenga en cuenta que no puede acceder al índice 2 en una matriz de tamaño 2. Una matriz de tamaño 2 tiene 2 indicadores válidos (0 y 1). En general, una matriz de tamaño N tiene N índices válidos (0 ... (N-1))

+0

Sí, siento que fue solo un error tipográfico en mi ejemplo. –

4

¿Está buscando asignar todos los valores en una matriz 2D en el momento de la declaración? Si es así, funciona de la siguiente manera:

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

Recuerde que una matriz 2D en Java es realmente una matriz de matrices, pero Java le da una cierta sintaxis especial si lo hace en el momento de la declaración.

2

desea que esta:

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

contenidos [0] [0] apunta a una sola int, no una matriz de enteros. Solo puede asignar un valor único a cualquier índice en particular en la matriz.

0
int Array[][] = {{1, 2}, {3, 4}}; 

Esta matriz hizo una tabla de 2 * 2 [Fila * columna] = 4 Cajas. En 1 fila y en 1 columna 1 se almacena. donde se almacena como en 1 fila y en 2 columna 2.

Cuestiones relacionadas