La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ArrayList Collecciones

Presentaciones similares


Presentación del tema: "ArrayList Collecciones"— Transcripción de la presentación:

1 ArrayList Collecciones
Lugar: Autor: Alberto Alejandro Cortez Curso: Calidad de Software: Programación Modular y Anti-Patrones de Proyecto Año: Collecciones

2 Collection Framework Un marco (framework) de trabajo es un conjunto de interfaces y/o clases proporcionados para resolver un problema determinado. La plataforma Java define a una interfaz como medio para implementar estándares e instrucciones. El marco define los comportamientos de los objetos de una colección utilizando una jerarquía de interfaces. El marco define seis interfaces. Hay dos clases raíz en la parte superior de la jerarquía. Éstas son las interfaces collection y map.

3 Jerarquía de herencia de Framework

4 ¿Qué es una colección? Es un único objeto que representa a un grupo de objetos. La clase con la que se crean los objetos que representan una colección, fueron programadas por alguien y no forma parte de la característica del propio lenguaje. Los objetos de la colección se denominan elementos. Las colecciones tratan normalmente con muchos tipos de objetos, todos los cuales descienden de un tipo padre común. (el tipo padre común es la clase Object). Para almacenar un int en un objeto Wrapper,

5 Su longitud es variable.
Pueden almacenar objetos de cualquier tipo de clase. En la versión 1.5 de java se puede colocar una restricción con la cual se limite el tipo de objeto que almacene una colección. Ej. Collection <Cliente> Ej. Map <Auto>

6 Diferencia con los arreglos
- Son una característica del propio lenguaje java. - Longitud fija una vez creados. - Pueden almacenar tipo primitivos. - Pueden almacenar solo tipos de datos homogéneos (todo int, ó todo long ó todos objetos de la misma clase).

7 Interfaz Collection

8 Interfaz Collection Este interfaz, como tipo, es utilizado para manipular colecciones cuando se desea una generalidad máxima. Este es el interfaz padre de Set y List. El framework no proporciona ninguna implementación suya, sino de sus subtipos. La interfaz collection se utiliza para cualquier colección simple, desordenada y que pueda tener duplicados. No hay restricciones. Cualquier tipo de objeto puede utilizarse y pueden existir múltiples casos del mismo. Esta interfaz soporta métodos para agregar, quitar, contar y verificar los elementos de una colección. En ocasiones una colección se denomina bag ("bolsa"), ya que no impone ninguna regla.

9 Interfaz Collection

10 Interfaz List

11 Interfaz List La interfaz List hereda de la interfaz Collection.
Establece estipulaciones adicionales a las del interfaz Collection en los métodos add, equals, hashCode, iterator y remove. También añade nuevos métodos a los allí declarados para un acceso posicional. Las listas son colecciones ordenadas, y pueden tener duplicados. El orden puede ser el orden natural, que es el orden en el cual los objetos se agregaron a la lista. Puesto que la lista está ordenada, los objetos de la misma pueden colocarse en un índice. La primera posición en una lista es 0. Existen distintas implementaciones de esta interfaz: ArrayList, LinkedList,Vector.

12 Interfaz List

13 Clases abstractas Existen unas clases en java.util que empiezan por Abstract + nombre de interface. Estas son implementaciones parciales de dichos interfaces. Las implementaciones de propósito general derivan de ellas. Su intención es proporcionar un punto de partida a la hora de construir nuestras propias implementaciones de los interfaces básicos, evitando la implementación de todos los métodos definidos en ellos. Collection: Las clases abstractas son: AbstrcatCollection, AbstractList, AbstractSet, AbstractSequentialList Map: Las clases abstractas son: AbstractMap

14 Clases abstractas

15 Clase ArrayList Gestiona un arreglo interno de referencia a objetos Object. Alberga elementos de tipo Object. Se debe realizar un moldeado siempre que se quiera utilizar un objeto del ArrayList. Para crecer ó disminuir, crea nuevos arreglos y de esta forma manipula el arreglo interno que posee.

16 Detalle de ArrayList

17 Clase ArrayList

18 Paquete Las colecciones se encuentran en el paquete: java.util de las librerías de java. ArrayList forma parte del paquete java.util desde la versión 1.2 del jdk

19 Ejemplo

20 Contenido del ejemplo En el ejemplo se utilizan 3 clases: * Persona
* Cliente (hereda de persona) * Producto Además se utiliza una clase principal donde se demuestra el uso de ArrayList.

21 Clase Persona

22 Clase Cliente

23 Clase Producto

24 Creo los objetos de las clases

25 Constructores ArrayList posee 3 constructores de los cuales usaremos los siguientes: * public ArrayList(int initialCapacity) * public ArrayList()

26 Constructores en ArrayList

27 Implementación del Ejemplo

28 Comportamiento en memoria

29 Método “size” En nuestro ejemplo utilizaremos el método: size el cual devuelve la cantidad de elementos que se guardaron en un ArrayList. * public int size()

30 Método “size” en ArrayList

31 Implementación del Ejemplo

32 Salida por pantalla Si corremos el programa, por pantalla nos muestra: (cero) Pregunta: ¿Si creamos una colección y esta a su vez creo un arreglo de 10 referencias Object? ¿No debería mostrar 10 por pantalla? Respuesta: El método devuelve la cantidad de elementos que no referencia a null.

33 Método “add” En nuestro ejemplo usaremos el método add el cual esta sobre cargado. * public boolean add(Object o) Agrega elementos al final del la lista. * public void add(int index, Object element) Agrega elementos en la posición indicada. Los elementos en la posición index y los que están por encima se desplazan por encima del agregado.

34 Método “add” en ArrayList

35 Implementación del Ejemplo

36 Comportamiento en memoria

37 Recorrer un ArrayList Para poder recorrer un colección se utiliza la interfaz Iterator. Esta interfaz provee los métodos: hasNext: Devuelve true si el objeto iterador dispone de mas elementos next: La llamada repetitiva a next permite recorrer la colección elemento por elemento. Cuando llega al final de la colección lanza NoSuchElementException remove: Elimina el ultimo elemento devuelto por next

38 Interfaz Iterator

39 Como funciona Iterator
La clase ArrayList posee un método llamado iterator que devuelve un Iterator. El método lo hereda de AbstractList.

40

41 Se crea una variable de tipo Iterator (no se pueden crear objetos por que es una interfaz) y utilizando el método iterator obtengo una referencia al iterador de la colección que estoy utilizando. Formato: Iterator iter = colección.iterator(); while (iter.hasNext()){ //Preg si tiene elem. La colección Object obj = iter.next(); //Obtengo el elemento } Antiguamente se utilizaba nextElement y hasMoreElement de la interfaz Enumeration

42 Dijimos que el método next de la interfaz Iterator devuelve un Object, es decir, la clase madre de cualquier clase en Java. Pero que pasa si guarde clientes en la colección se supone que quiero trabajar con clientes cuando lo recupere y no con Object. Para eso se debe realizar un casting al objeto que deseo utilizar. Ej.: Clientes cliAux = (Clientes) iter.next();

43 Implementación del Ejemplo

44 Agregar objetos diferentes
Como dijimos al comienzo una colección puede almacenar objetos creados por diferente tipos de clases. Lo que trae como inconveniente tener que definir como se tratara el objeto que se recupera de la colección. Es decir además de realizar un casting también se debe determinar a que clase pertenece ese objeto almacenado. La forma de realizar este paso, es a través del operador instanceof el cual devuelve verdadero si un objeto pertenece a una clase determinada.

45 Implementación del Ejemplo

46 Método “add” con parámetros
Este método como vimos recibe dos parámetros, el índice donde se quiere colocar el objeto y el objeto. * public void add(int index, Object element) Funcionamiento: Todos los elementos que están en la posición indicada y los que se encuentran por encima de el son desplazados para arriba para poder realizar el hueco que permita colocar el nuevo elemento

47 Método “add” con parámetros en en ArrayList

48 Implementación del Ejemplo

49 Comportamiento en memoria

50 Agregar objetos duplicados
Como dijimos un List puede almacenar objetos duplicados. Para lo cual nuestro en nuestro ejemplo almacenaremos dos veces el mismo objeto

51 Comportamiento en memoria

52 Salida del programa por pantalla

53 ¿Preguntas? ó consultas
FIN ¿Preguntas? ó consultas


Descargar ppt "ArrayList Collecciones"

Presentaciones similares


Anuncios Google