>> <<

Lenguaje Java

Arrays

Los arrays en Java pueden ser de dos tipos: unidimensionales y arrays de arrays similares a los de C# (consultar este lenguaje para más información). A diferencia de C o C++, no es necesario conocer el tamaño cuando declaramos la variable, ya que se puede inicializar después. Usaremos el operador new para reservar el tamaño, una vez se conozca.

Arrays unidimensionales

Para definir un array unidimensional, especificamos la variable con los corchetes, que se pueden poner antes o después de la variable. Después, se puede indicar el tamaño, en la misma línea donde se declara, o después, cuando se sepa.

int[] datos = new int[10];    // Array de 10 enteros
int[] datos2;
int tamano;
...
datos2 = new int[tamano];

También podemos utilizar constantes para definir el tamaño del array:

final int TAMANO = 10;
int[] datos = new int[TAMANO];

Para acceder a las posiciones del array, basta con indicar la posición a la que acceder entre corchetes, comenzando por la 0:

datos[0] = 3;
...
System.out.println(datos[3]);

Para recorrer un array unidimensional, podemos acceder a su propiedad length que indica su tamaño:

for (int i = 0; i < datos.length; i++)
{
    System.out.println(datos[i]);
}

Arrays de arrays o bidimensionales

Los arrays de arrays son arrays multidimensionales (normalmente bidimensionales) donde cada fila puede tener un tamaño diferente, de modo que es un array que contiene dentro otros arrays, cada uno con su propio tamaño. Se definen con una pareja de corchetes para cada dimensión.

int[][] datos;

Para definir el tamaño, se define primero el número de filas...

datos = new int[3][];    // 3 filas

... y después podemos indicar el tamaño por separado de cada fila:

datos[0] = new int[5];   // Primera fila: 5 columnas
datos[1] = new int[3];   // Segunda fila: 3 columnas
datos[2] = new int[10];  // Tercera fila: 10 columnas

Alternativamente, también podemos inicializarlo como una tabla, donde indiquemos de golpe el tamaño de todas las filas:

int[][] datos = new int[3][10];   // 3 filas, 10 columnas cada fila

Para recorrer un array de arrays, empleamos bucles anidados, y podemos emplear la propiedad length de cada dimensión para saber el número de repeticiones de ese bucle en concreto:

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

Definir arrays con datos prefijados

Si queremos definir un array con los datos ya rellenos en el código, podemos hacerlo asignándole los datos entre llaves, separados por comas:

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

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

Notar cómo, en el caso de arrays de arrays, se especifican entre llaves los elementos de cada fila. El número de elementos puede ser el mismo para cada fila, o diferente, según se necesite.

(C) NachoIB, 2020 - contacto.lenguaj.es@gmail.com