2 2 1 arreglos

15
2_2_1 Arreglos 2_2_1 Arreglos Apoyo SSD3 Apoyo SSD3

Upload: uvm

Post on 08-Jul-2015

5.832 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2 2 1 Arreglos

2_2_1 Arreglos2_2_1 Arreglos

Apoyo SSD3Apoyo SSD3

Page 2: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 22

DefiniciónDefinición

Un Un arreglo arreglo es una colección de datos es una colección de datos (cada uno de los cuales es del mismo (cada uno de los cuales es del mismo tipo).tipo).

Cada pieza del arreglo se llama Cada pieza del arreglo se llama elementoelemento.. Para acceder a un elemento de un Para acceder a un elemento de un

arreglo, utiliza el operador de corchetes arreglo, utiliza el operador de corchetes ( [] ) y un ( [] ) y un índiceíndice entero que indica la entero que indica la ubicación del elemento en el arreglo. ubicación del elemento en el arreglo.

Page 3: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 33

ArreglosArreglos

El primer elemento en un arreglo tiene un El primer elemento en un arreglo tiene un índice 0, el segundo tiene un índice 1 y índice 0, el segundo tiene un índice 1 y así sucesivamente.así sucesivamente.

Por lo tanto, los índices en un arreglo de Por lo tanto, los índices en un arreglo de nn elementos estarán en el rango de 0 a elementos estarán en el rango de 0 a nn - - 1.1.

Los elementos del arreglo son Los elementos del arreglo son almacenados contiguamente en memoria.almacenados contiguamente en memoria.

Page 4: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 44

Declaración y Utilización de Declaración y Utilización de ArreglosArreglos

Un arreglo es declarado especificando el Un arreglo es declarado especificando el tipo de sus elementos, seguido por tipo de sus elementos, seguido por corchetes.corchetes.

Considera la siguiente declaración:Considera la siguiente declaración:int[] ages; int[] ages;

El tipo de los elementos del arreglo es El tipo de los elementos del arreglo es intint, , mientras que el tipo del arreglo en sí es mientras que el tipo del arreglo en sí es int[].int[].

El nombre del arreglo es el identificador El nombre del arreglo es el identificador agesages

Page 5: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 55

Inicialización de un arregloInicialización de un arreglo

El identificador El identificador agesages es una variable de es una variable de referencia y sus valores son referencia y sus valores son nullnull inicialmenteinicialmente

Cuando se crea un nuevo objeto arreglo, Cuando se crea un nuevo objeto arreglo, sus elementos son inicializados a sus sus elementos son inicializados a sus valores predeterminados valores predeterminados

Page 6: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 66

Creación de un objeto arregloCreación de un objeto arreglo

Para crear un objeto arreglo, utiliza el Para crear un objeto arreglo, utiliza el operador operador newnew, seguido por el tipo de los , seguido por el tipo de los elementos y el tamaño del arreglo elementos y el tamaño del arreglo deseado.deseado. El tamaño del arreglo no debe ser negativo.El tamaño del arreglo no debe ser negativo.

ages = new int[5];ages = new int[5];

names = new String[3]; names = new String[3];

Page 7: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 77

Creación de un objeto arregloCreación de un objeto arreglo

Existe otra forma de crear un objeto Existe otra forma de crear un objeto arreglo: la declaración del arreglo puede arreglo: la declaración del arreglo puede incluir un inicializador, el cual es una lista incluir un inicializador, el cual es una lista separada por comas de los elementos separada por comas de los elementos iniciales entre corchetes. iniciales entre corchetes.

Page 8: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 88

Creación de un objeto arregloCreación de un objeto arreglo

Un inicializador puede ser utilizado Un inicializador puede ser utilizado solamente en la instrucción de solamente en la instrucción de declaración.declaración.int[] ages = {21, 19, 35, 27, 55};int[] ages = {21, 19, 35, 27, 55};

String[] names = {"Bob", "Achebe", String[] names = {"Bob", "Achebe", null};null};

Page 9: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 99

Acceder a elementos de un arregloAcceder a elementos de un arreglo

Recuerda que un elemento del arreglo es Recuerda que un elemento del arreglo es accedido utilizando el operador de accedido utilizando el operador de corchetes y un índice.corchetes y un índice.

Considera la siguiente expresión. El Considera la siguiente expresión. El primer elemento tienen un índice 0, por lo primer elemento tienen un índice 0, por lo que el índice 2 indica el que el índice 2 indica el tercertercer elemento elemento del arreglo:del arreglo:ages[2] // el tercer elemento

Page 10: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1010

IndicesIndices

La Máquina Virtual de Java (JVM) lanzará La Máquina Virtual de Java (JVM) lanzará una excepción una excepción ArrayIndexOutOfBoundsException ArrayIndexOutOfBoundsException si un si un programa trata de utilizar un índice programa trata de utilizar un índice inválido. inválido.

Page 11: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1111

Elementos de un arregloElementos de un arreglo

Debido a que Debido a que agesages es un arreglo de es un arreglo de enteros (enteros (intint), la expresión ), la expresión ages[2]ages[2] es es un un intint

Es decir, cada elemento de un arreglo es Es decir, cada elemento de un arreglo es un objeto del tipo de dato del arreglo, y un objeto del tipo de dato del arreglo, y tendrán las mismas propiedades y tendrán las mismas propiedades y métodos del tipo de dato u objeto.métodos del tipo de dato u objeto.

Page 12: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1212

Típicamente, los arreglos son recorridos en Típicamente, los arreglos son recorridos en orden secuencial utilizando bucles orden secuencial utilizando bucles forfor. .

El siguiente código utiliza un bucle El siguiente código utiliza un bucle forfor para para inicializar cada elemento en un arreglo en el inicializar cada elemento en un arreglo en el cuadrado de su índice. cuadrado de su índice. int[] values = new int[5];int[] values = new int[5];

for (int i = 0; i < values.length; +for (int i = 0; i < values.length; ++i)+i)

{{

values[i] = i * i;values[i] = i * i;

}}

Page 13: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1313

Bucle for-each para recorrer Bucle for-each para recorrer elementos de un arregloelementos de un arreglo

El bucle El bucle for-eachfor-each provee una manera provee una manera sencilla para iterar sobre los elementos de sencilla para iterar sobre los elementos de un arreglo.un arreglo.

En el bucle En el bucle for-eachfor-each se debe especificar se debe especificar el arreglo sobre el cual se realizará la el arreglo sobre el cual se realizará la iteración, y una variable para acceder a iteración, y una variable para acceder a cada uno de los elementos. cada uno de los elementos.

Page 14: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1414

Ejemplo for-eachEjemplo for-each

String[] words = {"Arrays", String[] words = {"Arrays", "and", "for-each"}"and", "for-each"}

String result = "";String result = "";

for (String element : words) {for (String element : words) {result += element;result += element;

}}

stdout.println(result);stdout.println(result);

Page 15: 2 2 1 Arreglos

Mtl Lourdes CahuichMtl Lourdes Cahuich 1515

Ejemplo de uso de arreglosEjemplo de uso de arreglos

En clase se vera el código de ejemplo de En clase se vera el código de ejemplo de uso de arreglosuso de arreglos