¿Qué es un
arrays?
Un array es una
estructura de datos que nos permite almacenar una gran cantidad de datos de un
mismo tipo. El tamaño de los arrays se declara en
un primer momento y no puede cambiar en tiempo de ejecución como puede
producirse en otros lenguajes.
Arrays en java
Java proporciona una estructura de
almacenamiento denominada array que permite almacenar muchos objetos de la misma
clase e identificarlos con el mismo nombre.
La declaración de un array tiene la
siguiente sintaxis:
tipo-o-clase[]
identificador-array;
o
tipo-o-clase
identificador-array[];
Por ejemplo, un array de números
enteros se puede declarar de dos
formas:
int[] numeros;
o
int numeros[];
Ambas declaraciones son equivalentes,
el tipo base del array es int y
el nombre del array es numeros. Todos los elementos de la estructura numeros[] almacenan un int. La primera declaración define un
array de objetos de tipo primitivo int con identificador numeros. La segunda declaración dice que cada elemento de
la forma numeros[]
es de tipo int.
Ejemplos de declaraciones de arrays:
int[] numerosEnteros;
// array de tipo int
double[]
numerosReales; // array de tipo double
String[] nombres; //
array de tipo String
Object[] objetos; //
array de la clase Object
Autos[] auto; //
array de la clase auto
Se denomina tipo base del array al
tipo que se declara para sus elementos.
Este tipo base puede ser un tipo
primitivo de Java, un objeto o una clase definida. En los ejemplos anteriores
se han utilizado tipos primitivos y clases como tipo base. El array numerosEnteros almacena objetos del primitivo int. El array nombres almacena objetos de la clase String. El array objetos almacena referencias a instancias de
la clase Object
de
Java. El array auto almacena objetos de la clase Autos.
Además de declarar un array es
necesario indicar el número de elementos que va a almacenar. Un array es un
objeto y como cualquier objeto de un programa Java, su valor inicial es null. Antes de hacer referencia a los elementos
del array es necesario instanciar el objeto.
Cuando se instancia un objeto array se
asigna un espacio de memoria para almacenar los elementos del array. Para esto
es necesario saber el número total de elementos que va a almacenar.
La
instanciación de un objeto array se hace de la siguiente forma:
nombres = new
String[100];
auto= new Autos[50];
En
este ejemplo, el
array nombres
tiene capacidad para
almacenar hasta
100 objetos de tipo String. El array auto puede almacenar hasta 50 objetos de la
clase Autos.
Cuando se crea un array se inicializa
el valor de todos sus elementos al valor por defecto del tipo base del array:
cero para los números, false para los boolean, para los caracteres y null para las referencias a objetos.
De forma similar al resto de objetos
de Java, un array se puede inicializar al momento de la declaración. En este
caso se inicializa al valor por defecto del tipo del array.
int[] numerosEnteros
= new int[10];
String[] nombres =
new String[100];
Autos [] auto = new Autos[50];
Por ejemplo, el array notas almacena 5 números
enteros.-
La
declaración del array:
int[] notas = {4, 9,
7, 5, 10};
El primer elemento del array se
almacena en la posición 0 y el último en la posición 4, que equivale a su
tamaño menos 1. El atributo length
almacena el tamaño de un array. En este ejemplo, la última posición del array
es notas.length
– 1.
Este arrray notas almacena 5
calificaciones, notas[0]
es el primer elemento del
array y notas[4]
el último. Para mostrar
las calificaciones almacenadas en el array, se puede utilizar un for con una variable deVcontrol que vaya
de cero hasta la longitud del array menos 1.
for (int i=0;
i<=notas.length - 1; i++)
System.out.println("notas["
+ i + "] es " +
notas[i]);
La
salida por la consola:
notas[0] es 4
notas[1] es 9
notas[2] es 7
notas[3] es 5
notas[4] es 10
El siguiente for es equivalente al anterior. En vez de
definir el límite de la variable de control menor o igual a notas.length–1, se hace estrictamente menor que notas.length.
for (int i=0;
i<notas.length; i++)
System.out.println("notas["
+ i + "] es " +
notas[i]);
El atributo length de un array almacena un valor numérico
que se puedeVconsultar pero no se puede modificar. Es una buena práctica de programación
utilizar el atributo length
para hacer referencia al
tamaño de un array.
Otra forma de mostrar los valores
almacenados en un array es utilizando un for “para
todo”, donde la variable de control del for,
con identificador nota, toma el valor de todos los elementos
de la estructura de almacenamiento, en este caso, el array notas.
for (int nota :
notas)
System.out.println(nota);
La variable nota del for “para todo” toma los valores nota[0], nota[1],nota[2], nota[3] nota[4] y
nota[5] en cada iteración. Cuando se utiliza
un for “para todo” no hace falta indicar los
límites de la variable de control del for,
basta que esta variable sea del tipo almacenado en el array. En este ejemplo nota es de tipo int.
La
salida por la consola:
4
9
7
5
10
Ejemplo de "diasTrabajo"-
Un array también se puede inicializar indicando la lista de valores que va almacenar:
String[] diasTrabajo = {"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes"
“Sábado”;
int[] enteros = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11};
El array diasTrabajo almacena 6 objetos de tipo String con los nombres de los días laborables de la semana. El array enteros almacena 12 números enteros con valores de 0 a 11.
Para hacer referencia a cada elemento de un array es necesario indicar la posición que ocupa en la estructura de almacenamiento. Esta posición se denomina índice. El primer elemento de un array se almacena en la posición cero y el último elemento en la posición n-1, donde n es el tamaño del array.
El array diasTrabajo almacena los nombres de los días laborables de la semana.-
La declaración del array:
String[]diasTrabajo = {"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes"
“Sábado”};
De nuevo, se utiliza un for “para todo” para mostrar el contenido del array
diasTrabajo que almacena objetos de tipo String.
for (String dia: diasTrabajo)
System.out.println(dia);
La variable dia del for “para todo” es de tipo String y toma los valores
diasTrabajo [0], diasTrabajo [1], diasTrabajo [2],
diasTrabajo [3], diasTrabajo [4] y diasTrabajo [5] en cada iteración.
La salida por consola:
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado