Arrays

Anuncio
Arrays
Programación
Licenciatura de Lingüística y Nuevas Tecnologías
2007-2008
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
¿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,...).
0
1
…
n-2
n-1
3
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.
4
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];
5
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"};
6
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 valor
null.
alumnos
0
1
2
3
4
5
6
7
8
9
null
null
null
null
null
null
null
null
null
null
7
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!
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
9
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.java
Doubles2.java
10
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.
11
Propiedades de los arrays
• 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.
12
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.
13
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...
14
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
15
Descargar