martes, 29 de marzo de 2016

Arrays multidimensionales en JAVA



Un array de dos dimensiones es un array que contiene otro array en cada uno de sus elementos.

Por ejemplo, un array de dos dimensiones de números enteros de tamaño 2 x 3 se declara:

int[][] notas = new int[2][3];

Un array de dos dimensiones tiene forma de tabla. Para indicar la posición de uno de sus elementos es necesario indicar dos índices, uno para la fila y otro para la columna. La fila indica la posición en el primer array y la columna la posición en el segundo array.

El siguiente esquema muestra un array de dos dimensiones de números enteros. El array notas se inicializa con los valores {{5, 7, 9}, {4, 6, 5}}.
Este array representa una tabla de 2 x 3 y en total almacena 6 números enteros. El array notas tiene dos elementos y cada uno de ellos es un array: notas[0] y notas[1]. El elemento notas[0] tiene a su vez 3 elementos: notas[0][0], notas[0][1] y notas[0][2]. El elemento notas[1] tiene también 3 elementos: notas[1][0], notas[1][1] y notas[1][2].



Para mostrar los elementos del array notas es necesario utilizar dos for anidados.

for (int i = 0; i < notas.length; i++)
for (int j = 0; j < notas[i].length; j++)
System.out.println("notas[" + i + "][" + j + "] " +
"es " + notas[i][j]);

La salida por la consola:

notas[0][0] es 5
notas[0][1] es 7
notas[0][2] es 9
notas[1][0] es 4
notas[1][1] es 6
notas[1][2] es 5

También se puede utilizar un for “para todo”:

for (int[] fila : notas)
for (int nota : fila)
System.out.println(nota);


La salida por la consola:

5
7
9
4
6
5

En general, un array multidimensional es aquel que dentro de uno de sus elementos almacena uno o más arrays de objetos. Por ejemplo, un array de tres dimensiones de números enteros de tamaño 3 x 3 x 3 se declara:

int[][][] numeros = new int[3][3][3];


Este array de tres dimensiones tiene forma de cubo y almacena 27 números enteros. Para indicar la posición de uno de sus elementos es necesario utilizar tres índices. Si el array debe almacenar números del 1 al 27 consecutivos en cada una de sus dimensiones, entonces se inicializa utilizando tres for anidados:

int numero = 1;
for (int i=0; i<numeros.length; i++)
for (int j=0; j<numeros[i].length; j++)
for (int k=0; k<numeros[j].length; k++)
numeros[i][j][k] = numero++;

Para mostrar los números almacenados:

for (int i=0; i<numeros.length; i++) {
for (int j=0; j<numeros[i].length; j++) {
for (int k=0; k<numeros[j].length; k++)
System.out.print(numeros[i][j][k] + " ");
System.out.println("");
}
System.out.println("");
}

La salida por la consola:

1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27


Espero haber ayudado en algo. Hasta la próxima oportunidad!











  

No hay comentarios:

Publicar un comentario en la entrada