domingo, 27 de marzo de 2016

Arrays en Java - 1 de 2



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
Vehiculo[] vehiculos; // array de la clase Vehiculo
Turismo[] turismos; // array de la clase Turismo

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 vehiculos almacena objetos de la clase Vehiculo. 

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];
vehiculos = new Vehiculo[50];

En este ejemplo, el array nombres tiene capacidad para almacenar hasta 100 objetos de tipo String. El array vehiculos puede almacenar hasta 50 objetos de la clase Vehiculo.

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, \u0000 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];
Vehiculo[] vehiculos = new Vehiculo[50];
Turismo[] turismos = new Turismo[50];

Un array también se puede inicializar indicando la lista de valores que va a almacenar:

String[] diasLaborables = {"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes";
int[] enteros = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

El array diasLaborables almacena 5 objetos de tipo String con los nombres de los días laborables de la semana. El array enteros almacena 11 números enteros con valores de 0 a 10.

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.

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 de control 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]);


Espero haber ayudado en algo. Hasta la próxima oportunidad!












  

No hay comentarios:

Publicar un comentario en la entrada