Arrays en Java – un breve tutorial

Un array es un objeto contenedor que contiene un número finito de valores de un tipo específico. El número de elementos que puede almacenar el array se define en el momento de su creación y no puede modificarse posteriormente. Después de la creación su longitud es fija.

  • Declaración de un array
  • Creación e inicialización de un array
  • Acceso a los valores del array
  • Una nota rápida sobre el tamaño del array

Declaración de un array

Declarar un array es muy similar a declarar una variable. Necesitamos especificar un tipo y un identificador.

int[] números;

Esta línea de código declara un array de enteros con el nombre "números". Hay que utilizar corchetes para que el compilador sepa que numbers es un tipo de array. Los nombres de los arrays tienen que respetar las convenciones habituales de nomenclatura de variables de Java.

Creación e inicialización de un array

Ahora tenemos que crear un objeto array e inicializar nuestra variable con él. Vamos a crear un array con memoria suficiente para 10 enteros.

números = new int[10];

Con el operador new, creamos el objeto array y lo asignamos a nuestra variable números que creamos antes. En lugar de utilizar dos líneas separadas también se puede utilizar la sintaxis abreviada así:

int[] números = new int[10];

Si la creación del array tuvo éxito podemos acceder a cada elemento del array utilizando la sintaxis de corchetes.

números[0] = 42; // inicializar el primer elemento
números[1] = 84; // inicializar el segundo elemento
// ...
números[9] = 21504 // inicializar el último (décimo) elemento

Como empezamos a contar en el índice cero, nuestro décimo elemento está en el índice 9. El uso del número 10 dentro de los corchetes provocará un error en tiempo de ejecución que puede ser capturado mediante el manejo de excepciones. En una situación del mundo real no se accedería a cada elemento individualmente. En su lugar, utilizarías una estructura de bucle como for o while.

Acceso a los valores del array

Por supuesto, no sólo quieres almacenar datos dentro de un array sino también leer de él. Para acceder a valores individuales del array se puede utilizar también el operador de corchetes.

//Imprime el 6º elemento
System.out.println("Elemento en el índice 5: " + números[5]);

Para imprimir cada elemento del array podemos utilizar un bucle que iterará sobre cada array.elemento.

for (int i = 0; i < números.longitud; i++)

{
System.out.println("Elemento en el índice " + i + ": " + números[i]);
}

El valor números.longitud es la cantidad de elementos que se pueden almacenar en la matriz números.

Una nota rápida sobre el tamaño de la matriz

Como se ha mencionado anteriormente, la capacidad de la matriz es fija y no hay forma de cambiarla. Sin embargo, hay un pequeño truco para evitar este problema. En lugar de redimensionar el array original (lo cual no es posible), creamos un nuevo array con el nuevo tamaño y copiamos los valores antiguos en él. La clase array de Java ofrece una función sencilla de utilizar para este enfoque.

Si queremos aumentar la capacidad de nuestro array de números de 10 a 20 podemos utilizar el siguiente código:

números = Arrays.copyOf(números, 20);

Esto creará un nuevo array con longitud 20 para los números y copiará los antiguos valores en él.
Si ya conoce el contenido de la matriz en el momento de la compilación, también puede utilizar la sintaxis abreviada así:

int[] moreNumbers = {10, 20, 30, 40, 50, 60};

Como puede ver, no es necesario especificar la longitud de la matriz cuando se utiliza la sintaxis abreviada.