Arrays

15
Arrays Programación Licenciatura de Lingüística y Nuevas Tecnologías 2007-2008

description

mas sobre arrays

Transcript of Arrays

Page 1: Arrays

ArraysProgramación

Licenciatura de Lingüística y Nuevas Tecnologías2007-2008

Page 2: Arrays

Agenda

• Definición• Declaración, creación, inicialización• Acceso a los elementos del array• Propiedades de los arrays• Array como argumento de entrada de un método

Page 3: Arrays

3

¿Qué es un array?• Grupo de datos en una misma unidad = estructura de datos.• Un array es un tipo de estructura de datos, es una secuencia

de ítems del mismo tipo.• Cada ítem es accesible con su índice.• El tipo de los items es el mismo en todo el array. Puede ser

básico (int, char,...) o de objetos (String, Alumno, Word,...).

n-1 n-2 … 10

Page 4: Arrays

4

Declarar una variable de tipo array• Declaración de una variable de tipo array:

tipo[] nombre_variable

• El tipo puede ser básico como int o de objeto como String• Por ejemplo:

– int[] values;– double[] notas;– String[] cadenas;

• Un array es un objeto, o sea que las variables values, notas y cadenas son variables de objeto.

Page 5: Arrays

5

Creación de un objeto array (1)• Para crear un objeto array:

– nombre_variable = new tipo[numero_de_elementos];• Por ejemplo, depués de declarar values y cadenas:

– values = new int[100] ;Hemos creado una tabla de 100 elementos de tipo int. La variable de

objeto values apunta al primer elemento.– cadenas = new String[10];Hemos creado una tabla de 10 elementos de tipo String. La variable

de objeto cadenas apunta al primer elemento.• También podemos declarar y crear el array al mismo tiempo:

– int[] values = new int[100] ;– String[] cadenas = new String[10];

Page 6: Arrays

6

Creación de un objeto array (2)• También, se puede crear y inicializar un array a la declaración:

– String[] alumnos = {"eva","cristina","sergi","teresa"}; Se ha creado un array con 4 cadenas– double[] notas = {10 ,5.5 } Se ha creado un array con 2 double

• Incorrecto (error de compilación):– String[] alumnos;– alumnos = {"eva","cristina","sergi","teresa"};

Page 7: Arrays

7

Creación de un objeto array (3)• Podemos declarar un array de cualquier tipo de objeto:

– Alumno[] alumnos = new Alumnos[10];Los elementos del array, por ejemplo alumnos[7], tienen como valornull.

null9 null8 null7 null6 null5 null4null3null2null1null0

alumnos

Page 8: Arrays

Acceso a los elementos del array (1)

• El tamaño del array se puede saber mediante la “variable” length.• El tamaño de un array es fijo, no se puede cambiar.• El primer elemento del array está al índice 0, el siguiente al índice

length-1.• Si intentamos acceder a un elemento mediante un índice fuera de

rango, tendremos un ArrayIndexOutOfBoundException.

• Un ejemplo– int[] numeros = new int[5];– System.out.println(numeros.length); // devuelve 5– numeros[0]=4;– numeros[4]=33; // último elemento del array– numeros[5]=6; // fuera de rango: excepción!

Page 9: Arrays

9

Acceso a los elementos del array (2)• Se pueden utilizar los elementos del array como simples variables:

– notas[0] = notas[1] + 3;– System.out.println( alumnos[3].length() );

• Ejemplos: Cadenas1.java Suma.java Hola1.java

Hola2.java

Page 10: Arrays

10

Acceso a los elementos del array (3)

• La variable length asociada a un array da el tamaño máximo del array, no su tamaño actual.

• Ejemplo: Cadenas2.java Doubles1.java

Cadenas3.javaDoubles2.java

Page 11: Arrays

11

Ejercicios

• Escribir programas para:– Decir para cada número de un array de enteros si es par o

impar.– Imprimir un array de números en orden inverso.– Decir cual es el número más grande de un array de números.

Page 12: Arrays

12

• Un array es una estructura estática: su tamaño no puede cambiar. No podemos reducirlo si ya no queremos un elemento o aumentarlo si queremos más elementos.• Los elementos son del mismo tipo, básico o de objeto.• Java proporciona la clase ArrayList, que define un array dinámico (próxima clase).

• Su tamaño es variable.• Puede contener cualquier tipo de objeto.

Propiedades de los arrays

Page 13: Arrays

13

Argumentos de entrada de un método (1)

• Al llamar a un método con sus argumentos de entrada, se copia el valor de estos argumentos, y son estas copias que se pasan al método y que se trabajan dentro del método.

• Ejemplo: Increment.java• Al salir del método, los argumentos conservan su valor

original, aunque se hayan modificado dentro del método.

Page 14: Arrays

14

Argumentos de entrada de un método (2)

• Cuando los argumentos son de tipo objeto, se pasa la copia del valor también, pero a diferencia de los argumentos de tipo básico, esta copia no es la copia del objeto sino la copia de la referencia.

• Ejemplo: Alumnos.java con Alumno.java• Al salir del método, los argumentos conservan su valor

original que es la referencia, pero el objeto modificado dentro del método sigue modificado!

• ...Un array es un objeto...

Page 15: Arrays

15

Recursos adicionales

• Brad Kjell (Lecture Notes on Java 5.0 Programming. Part 9. En particular los capitulos 46, 47, 48)– http://chortle.ccsu.edu/java5/index.html