Saltar la navegación

4.2.- Inicialización de arrays multidimensionales.

¿En qué se diferencia la inicialización de arrays unidimensionales de arrays multidimensionales? En muy poco. La inicialización de los arrays multidimensionales es igual que la de los arrays unidimensionales.

Para que una función retorne un array multidimensional, se hace igual que en arrays unidimensionales. Simplemente hay que poner el tipo de dato seguido del número de corchetes correspondiente, según el número de dimensiones del array. Eso claro, hay que ponerlo en la definición del método:

int[][] inicializarArray (int n, int m)

{

     int[][] ret=new int[n][m];

     for (int i=0;i<n;i++)

          for (int j=0;j<m;j++)

               ret[i][j]=n*m;

     return ret;

}

También se puede inicializar un array multidimensional usando las llaves, poniendo después de la declaración del array un símbolo de igual, y encerrado entre llaves los diferentes valores del array separados por comas, con la salvedad de que hay que poner unas llaves nuevas cada vez que haya que poner los datos de una nueva dimensión, lo mejor es verlo con un ejemplo:

int[][] a2d={{0,1,2},{3,4,5},{6,7,8},{9,10,11}};

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

El primer array anterior sería un array de 4 por 3 y el siguiente sería un array de 2x2x2. Como puedes observar esta notación a partir de 3 dimensiones ya es muy liosa y normalmente no se usa. Utilizando esta notación también podemos inicializar rápidamente arrays irregulares, simplemente poniendo separados por comas los elementos que tiene cada dimensión:

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

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


Es posible que en algunos libros y en Internet se refieran a los arrays usando otra terminología. A los arrays unidimensionales es común llamarlos también arreglos o vectores, a los arrays de dos dimensiones es común llamarlos directamente matrices, y a los arrays de más de dos dimensiones es posible que los veas escritos como matrices multidimensionales. Sea como sea, lo más normal en la jerga informática es llamarlos arrays, término que procede del inglés.

Autoevaluación

Pregunta

Dado el siguiente array: int[][][] i3d={{{0,1},{0,2}}, {{0,1,3}},{{0,3,4},{0,1,5}}};

¿Cuál es el valor de la posición [1][1][2]?

Respuestas

3

4

5

Ninguno de los anteriores.

Retroalimentación

Para saber más

Las matrices tienen asociadas un amplio abanico de operaciones (transposición, suma, producto, etc.). En la siguiente página tienes ejemplos de como realizar algunas de estas operaciones, usando por supuesto arrays:

Operaciones básicas con matrices.