|
PROGRAMACION EN JAVA |
|
El tipo llamado arreglo o array, es el tipo m�s conocido y en muchos lenguajes, el �nico tipo d datos estructurados que se ha implementado. Un tipo arreglo es una lista de datos con un n�mero fijo de componentes, todos del mismo tipo denominado tipo base; los que son referenciados o calificados mediante �ndices o expresiones ordinales encerradas en corchetes, que act�an como prefijo al identificador del arreglo, siendo su tipo denominado tipo �ndice.
Algunas de sus caracter�sticas m�s importantes de los arrays son las siguientes:
Declaraci�n de Arreglos
Como otras variables, antes de poder utilizar un array primero se debe declarar. De nuevo, al igual que otras variables, la declaraci�n de un array tiene dos componentes primarios: el tipo del array y su nombre. Un tipo de array incluye el tipo de dato de los elementos que va contener el array. Por ejemplo, el tipo de dato para un array que s�lo va a contener elementos enteros es un array de enteros. No puede existir un array de tipo de datos gen�rico en el que el tipo de sus elementos est� indefinido cuando se declara el array. Aqu� tienes la declaraci�n de un array de enteros:
int[] arrayDeEnteros;
La parte int[] de la declaraci�n indica que arrayDeEnteros es un array de enteros. La declaraci�n no asigna ninguna memoria para contener los elementos del array. Si se intenta asignar un valor o acceder a cualquier elemento de arrayDeEnteros antes de haber asignado la memoria para �l, el compilador dar� un error como este y no compilar� el programa:
testing.java:64: Variable arrayDeEenteros may not have been initialized.
Para asignar memoria a los elementos de un array, primero se debe ejemplarizar el array. Se puede hacer esto utilizando el operador new de Java. (Realmente, los pasos que se deben seguir para crear un array son similares a los se deben seguir para crear un objeto de una clase: declaraci�n, ejemplificaci�n e inicializaci�n. La siguiente sentencia asigna la suficiente memoria para que arrayDeEnteros pueda contener diez enteros.
int[] arrayDeEnteros = new int[10]En general, cuando se crea un array, se utiliza el operador new, m�s el tipo de dato de los elementos del array, m�s el n�mero de elementos deseados encerrado entre corchetes cuadrados ([ y ]).
TipodeElemento[] NombredeArray = new TipodeElementos[tamanoArray]Ahora que se ha asignado memoria para un array ya se pueden asignar valores a los elementos y recuperar esos valores:
for (int j = 0; j < arrayDeEnteros.length; j ++) {
arrayDeEnteros[j] = j;
System.out.println("[j] = " + arrayDeEnteros[j]);
}
Como se puede ver en el ejemplo anterior, para referirse a un elemento del array, se a�ade
corchetes cuadrados al nombre del array. Entre los corchetes cuadrados se indica (bien con
una variable o con una expresi�n) el �ndice del elemento al que se quiere acceder. Observa
que en Java, el �ndice del array empieza en 0 y termina en la longitud del array menos uno.
Hay otro elemento interesante en el peque�o ejemplo anterior. El bucle for itera sobre cada elemento de arrayDeEnteros asign�ndole valores e imprimiendo esos valores. Observa el uso de arrayDeEnteros.length para obtener el tama�o real del array. length es una propiedad proporcionada para todos los arrays de Java. Los arrays pueden contener cualquier tipo de dato legal en Java incluyendo los tipos de referencia como son los objetos u otros array. Por ejemplo, el siguiente ejemplo declara un array que puede contener diez objetos String.
String[] arrayDeStrings = new String[10];Los elementos en este array son del tipo referencia, esto es, cada elemento contiene una referencia a un objeto String. En este punto, se ha asignado suficiente memoria para contener las referencias a los Strings, pero no se ha asignado memoria para los propios Strings. Si se intenta acceder a uno de los elementos de arraydeStrings obtendr� una excepci�n 'NullPointerException' porque el array est� vac�o y no contiene ni cadenas ni objetos String. Se debe asignar memoria de forma separada para los objetos String:
for (int i = 0; i < arraydeStrings.length; i ++) {
arraydeStrings[i] = new String("Hello " + i);
}
Errores t�picos con arreglos:
int A[10]; // Ah� no va el tama�o! int[] A; // Ok A[1]= 100; // Todav�a no se ha pedido // espacio para el arreglo.Petici�n de espacio para un arreglo:
NOTA.- Los arreglos son entidades est�ticas, cuyo primer elemento se encuentra en el �ndice 0
int[] A; A= new int[10]; A[1]= 100; // Ahora s�!
|