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í!
|