lunes, 16 de marzo de 2009

ARREGLOS EN JAVA

El tipo llamado arreglo o en inglés array, es el tipo más conocido y en muchos lenguajes, el único tipo de 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 son las siguientes.-
*Los arreglos se crean con el operador new seguido del tipo y número de elementos.
*Se puede acceder al número de elementos de un arreglo con la variable miembro implícita length (por ejemplo, vect.length).
*Se accede a los elementos de un array con los corchetes y un índice que varía de 0 a length-1.
*Se pueden crear arreglos de objetos de cualquier tipo. En principio un arreglo de objetos es un arreglo de referencias que hay que completar llamando al operador new.
*Los elementos de un arreglo se inicializan al valor por defecto del tipo correspondiente (cero para valores numéricos, la cadena vacía para Strings, false para boolean, null para referencias).
*Como todos los objetos, los arreglos se pasan como argumentos a los métodos por referencia.
*Se pueden crear arreglos anónimos (por ejemplo, crear un nuevo arreglo como argumento actual en la llamada a un método).
Declaración de Arreglos.-
Como otras variables, antes de poder utilizar un arreglo primero se debe declarar. De nuevo, al igual que otras variables, la declaración de un arreglo tiene dos componentes primarios: el tipo del arreglo y su nombre. Un tipo de arreglo incluye el tipo de dato de los elementos que va contener el arreglo. Por ejemplo, el tipo de dato para un arreglo que sólo va a contener elementos enteros es un arreglo de enteros. No puede existir un arreglo de tipo de datos genérico en el que el tipo de sus elementos esté indefinido cuando se declara el arreglo. Aquí tienes la declaración de un arreglo de enteros:

int[ ] arrayDeEnteros;


La parte int[ ] de la declaración indica que arrayDeEnteros es un arreglo de enteros. La declaración no asigna ninguna memoria para contener los elementos del arreglo. 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 arreglo, primero se debe ejemplarizar el arreglo. Se puede hacer esto utilizando el operador new de Java. (Realmente, los pasos que se deben seguir para crear un arreglo 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 arreglo, se utiliza el operador new, más el tipo de dato de los elementos del arreglo, 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 arreglo 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 arreglo, se añade corchetes cuadrados al nombre del arreglo. 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 arreglo empieza en 0 y termina en la longitud del arreglo 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 arreglo.
length es una propiedad proporcionada para todos los arreglo de Java. Los arreglo pueden contener cualquier tipo de dato legal en Java incluyendo los tipos de referencia como son los objetos u otros arreglos. Por ejemplo, el siguiente ejemplo declara un arreglo que puede contener diez objetos String.

String[ ] arrayDeStrings = new String[10];

Los elementos en este arreglo 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 arreglo 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("Hola " + i);
}


NOTA.- Los arreglos son entidades estáticas, cuyo primer elemento se encuentra en el índice 0

4 comentarios:

  1. muy claros lo conceptos... se entiende muy bien felicidades... sigue asi... muy buen resumen

    ResponderEliminar
  2. Muy buen trabajo, hay especificaciones por si se aplica de forma erronea el codigo. Existe mucho texto creo que podrias resumir un poco.

    ResponderEliminar
  3. esta muy completo tu consulta.. abarca todo como se debe declarar la sentencias de una arreglo..

    ResponderEliminar
  4. Esta un poco extansa la consulta, seria bueno que le hayas hecho un resumen pero esta completo con lo que se refiere a arreglos

    ResponderEliminar