Descargar la presentación
La descarga está en progreso. Por favor, espere
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.
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.