Arrays
-
Upload
zhurii-viidal -
Category
Documents
-
view
219 -
download
4
description
Transcript of Arrays
![Page 1: Arrays](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/1.jpg)
ArraysProgramación
Licenciatura de Lingüística y Nuevas Tecnologías2007-2008
![Page 2: Arrays](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022081205/563db819550346aa9a908c8a/html5/thumbnails/15.jpg)
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