Arrays¶
En programación, un array (o arreglo en español) es una estructura de datos que permite almacenar múltiples elementos del mismo tipo en una secuencia o lista. Los elementos de un array están organizados en posiciones indexadas, lo que significa que cada elemento tiene una posición o índice dentro del array, comenzando generalmente desde 0.
Para acceder a cada elemento del array se utiliza el nombre del array y un índice que indica la posición que ocupa el elemento dentro del array. El índice se escribe entre corchetes [ ] y debe ser entero positivo. El primer elemento del array ocupa la posición 0, el segundo la posición 1, etc. En un array de n elementos el último ocupará la posición n-1.

En el ejemplo anterior, notas[0]
contiene la nota del primer alumno y notas[19]
contiene la del último.
Declaración¶
En la declaración se crea la referencia al array. La referencia será el nombre con el que manejaremos el array en el programa. Se debe indicar el nombre del array y el tipo de datos que contendrá. De forma general, un array unidimensional se puede declarar en Java de cualquiera de las siguientes formas:
tipo [] nombreArray;
tipo nombreArray[];
- tipo: indica el tipo de datos que contendrá. Aun array puede contener elementos de tipo básico o primitivo o referencias a objetos.
- nombreArray: es la referencia al array. Es el nombre que se usará en el programa para manejarlo.
Ejemplos de arrays
int [] ventas; // array de datos de tipo int llamado ventas
double [] temperaturas; // array de datos de tipo double llamado temperaturas
String [] nombres; // array de tipo String llamado nombres
A tener en cuenta
En un array podemos almacenar cualquier tipo de elementos, desde un byte a un objeto. Aunque la POO se inicia en la UT 06, es importante que vayáis teniendo esto en cuenta.
Instancia¶
Mediante la instanciación se reserva un bloque de memoria para almacenar todos los elementos del array. La dirección donde comienza el bloque de memoria donde se almacenará el array se asigna al nombre del array. De forma general:
nombreArray = new tipo[tamaño];
ventas = new int[5]; //se reserva memoria para 5 enteros y se asigna la dirección de inicio del array a ventas.
- nombreArray: es el nombre creado en la declaración.
- tipo: indica el tipo de datos que contiene.
- tamaño: es el número de elementos del array. Debe ser una expresión entera positiva. El tamaño del array no se puede modificar durante la ejecución del programa.
- new: operador para crear objetos. Mediante new se asigna la memoria necesaria para ubicar el objeto. Java implementa los arrays como objetos.
Lo normal es que la declaración y la instanciación se hagan en una sola instrucción:
tipo [] nombreArray = new tipo[tamaño];
int [] ventas = new int[5];
El tamaño del array también se puede indicar durante la ejecución del programa, es decir, en tiempo de ejecución se puede pedir por teclado el tamaño del array y crearlo:
Scanner sc = new Scanner(System.in);
System.out.print("Número de elementos del array: ");
int numeroElementos = sc.nextInt();
int [] ventas = new int[numeroElementos];
Cuidado
Si no hay memoria suficiente para crear el array, new lanza una excepción java.lang.OutOfMemoryError
. El manejo de excepciones lo veremos mucho más adelante, en la UT 08.
Diferencia entre la referencia y el contenido del array.¶
Debe quedar clara la diferencia entre la referencia (manejador del array o nombre del array) y el contenido del array. El nombre del array contiene la dirección de memoria del contenido del array.

Inicialización¶
Un array es un objeto, por lo tanto, cuando se crea, a sus elementos se les asigna automáticamente un valor inicial:
- 0 para arrays numéricos.
\u0000
o\0
(carácter nulo) para arrays de caracteres.false
para arrays booleanos.null
para arrays de String y de referencias a objetos.
También podemos dar otros valores iniciales al array cuando se crea. Los valores iniciales se escriben entre llaves separados por comas. Los valores iniciales deberán aparecer en el orden en que serán asignados a los elementos del array. El número de valores determina el tamaño del array.
//creación de un array de 4 elementos booleanos
boolean [] resultados = {true,false,true,false};
//creación de un array de 7 elementos de tipo String
String [] dias = {"Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"};
Actividades¶
-
AC 501 (RA6 /CE6a / IC1/ 3p) Declara de forma adecuada el array que sea necesario en cada caso:
- a. Se quiere almacenar la evolución del precio del combustible por litro en una gasolinera concreta. Por ejemplo: 1.677 €/litro.
- b. Una tienda de ropa necesita almacenar un listado con los productos que van a tener precio rebajado a partir del mes de enero. Por ejemplo: “Jersey de lana”
- c. Se necesita guardar las notas finales de la 1ª evaluación de un grupo de alumnos.
- d. El sistema de acceso de una empresa requiere almacenar en un array la letra del dni sus empleados para controlar la entrada a cierta zona restringida.
-
AC 502 (RA6 /CE6a / IC1/ 3p) Crea el array adecuado para cada caso asignándole los valores que se indican:
- a. Se quiere almacenar la evolución del precio del combustible por litro en una gasolinera concreta durante la última semana. 1.677 1.674 1.668 1.668 1.663 1.657 1.655
- b. Una tienda de ropa necesita almacenar 4 productos que van a tener precio rebajado a partir del mes de enero. Sudadera con bolsillos Chaleco largo acolchado Chaqueta biker Pantalón skinny
- c. Se necesita guardar las notas finales de la 1ª evaluación de un grupo pequeño de 5 alumnos. 7 8 4 5 9
- d. El sistema de acceso de una pequeña empresa requiere almacenar en un array la letra del dni sus 10 empleados para controlar la entrada a cierta zona restringida. G T B R A K S U E H