arreglos en java

7

Click here to load reader

Upload: cristian-andres

Post on 20-Jul-2015

491 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Arreglos en Java

UNIVERSIDAD POLITECNICA SALESIANA

ESCUELA DE INGENIERIAS

FACULTAD DE SISTEMAS

PROGRAMACION HIPERMEDIAL

OCTAVO TELEMATICA

:TEMA

Arreglos en Java

:INTEGRANTES

CRISTIAN GUACHAMIN

DIEGO NOBOA

Page 2: Arreglos en Java

MARIA AUXILIADORA MONTALVO

CARLOS DE LA TORRE

JAVIER SALINAS

SILVIA VEGA

Page 3: Arreglos en Java

Arreglos

El tipo llamado arreglo o 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 más importantes de los arrays son las siguientes:

• Los arrays se crean con el operador new seguido del tipo y número de elementos.

• Se puede acceder al número de elementos de un array 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 arrays de objetos de cualquier tipo. En principio un array de objetos es un array de referencias que hay que completar llamando al operador new.

• Los elementos de un array 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 arrays se pasan como argumentos a los métodos por referencia.

• Se pueden crear arrays anónimos (por ejemplo, crear un nuevo array como argumento actual en la llamada a un método).

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

Page 4: Arreglos en Java

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.

Page 5: Arreglos en Java

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);}

Otra forma de declararlos es la siguiente:

UNIDIMENSIONALES:

tipo nombre_array[]=new tipo[nº];tipo nombre_array[]={valores};

BIDIMENSIONALES:

tipo nombre_array[][]=new tipo[nº][nº];tipo nombre_array[][]={valores};

Inicialización de arrays:1. Los arrays se pueden inicializar con valores entre llaves

{...} separados por comas.2. También los arrays de objetos se pueden inicializar con varias

llamadas a new dentro de unas llaves {...}.

Page 6: Arreglos en Java

3. Si se igualan dos referencias a un array no se copia el array, sino que se tiene un array con dos nombres, apuntando al mismo y único objeto.

4. Creación de una referencia a un array. Son posibles dos formas:

double[] x; // preferibledouble x[];

5. Creación del array con el operador new:x = new double[100];

6. Las dos etapas 4 y 5 se pueden unir en una sola:double[] x = new double[100];

Para inicializar un array existen 2 maneras:• int[] arreglo=new int[4] o• int[] arreglo={100,200,302,400}

Como podrás concluir la primera declaras el array nada más diciéndole la cantidad de memoria secuencial que se debe reservar, en el segundo ejemplo se inicializa el array dándole los valores que va a contener (obviamente la cantidad de memoria secuencial reservada sera igual a la cantidad de elementos insertados).

Al momento de inicializar un arreglo de la manera:

• int[] arreglo=new int[4]

Cada posición del arreglo sera inicializada con el valor por defecto del tipo de variable. Por ejemplo si el arreglo si el arreglo es de tipo boolean, todas las posiciones del arreglo serán inicializadas con el valor false (ya que este es valor por defecto de este tipo de dato), por el contrario si el arreglo fuese de un tipo no primitivo, el valor que contendrá cada casilla sera null.

Valores por Defecto

A continuación tienes una lista de los valores por defecto de cada tipo de dato

Tipo de Dato-->Valorbyte-->0short-->0int-->0long-->0float-->0.0double-->0.0char-->/u0000

Page 7: Arreglos en Java

boolean-->falseObject (Cualquier tipo de Objeto)-->null

Para obtener el tamaño de un array de manera dinámica se utiliza la propiedad .length, esta propiedad es común para todos los array . También es importante saber que los arreglos se empiezan a enumerar desde el numero (0) cero por tanto para acceder al valor almacenado en la ultima posición deberás colocar el el tamaño del arreglo menos 1 unidad.

Al momento de tratar de acceder a una posición fuera del rango del arreglo se lanzara un exception de tipo

. .java lang ArrayIndexOutOfBoundsException (esta exception es una

exception no chequeada es por eso que no es necesario colocar un bloque try/catch en el código)

Bibliografía

• http://www.monografias.com/trabajos42/manual-de-java/manual-de-java4.shtml

• http://www.geocities.com/grupo22uagrm/arre.html