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
Twittear
No hay comentarios:
Publicar un comentario