ArrayList Collecciones

Slides:



Advertisements
Presentaciones similares
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Advertisements

Capitulo 3 Java util.
Marzo 2007 Lenguajes Visuales Clase III.
Técnicas avanzadas de programación Interfaces
ESTRUCTURA DE DATOS EN JAVA
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
El lenguaje de programación Java1 8. Colecciones e iteradores - interfaz Collection - clases ArrayList, LinkedList, HashSet, TreeSet - interfaz Map - clases.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
Conferencia 3: Paradigmas de la Orientación a Objetos Tema 1:Principios de la Tecnología de Objetos.
Tipos List y Set con tipos genéricos
Archivos en Java Unidad III – Programación Orientada a Objetos en Java Programación I
PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y constructores.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Programación Avanzada
Guía de implementación
Taller de Java Universidad de los Andes
Programación en C - manejo de Archivos
PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Avanzada
Clases y Objetos.
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Herencia Implementación en Java.
Programación en C - manejo de Archivos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Avanzada
Métodos y parámetros.
Colecciones Carlos Fontela, 2008.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Métodos en Java.
Memorias Una memoria es un espacio en el cual se puede almacenar información y es análogo a un arreglo o array en programación convencional. En VHDL una.
Conectividad de Bases de Datos
Introducción a programación web Martin Esses
Programación orientada a objetos
Diseño y Programación Orientada a Objetos
TUTORIAL PSeint.
Diccionarios y Mapeos Estructuras de Datos 2017.
MATEMÁTICA DISCRETA Y LÓGICA 1
Tema 3. Lenguaje unificado de modelado UML
Tema 7 Arreglos Parte 1.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
FACTORY METHOD Creación a nivel de clases.
IPOO 2 cuatrimestre 2016 Departamento de Ciencias e Ingeniería
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Qué son y características generales
Usando StreamReader y StreamWriter
Usando StreamReader y StreamWriter
ARRAYS Y COLECCIONES DE DATOS
UNIVERSIDAD TECNOLÓGICA EMILIANO ZAPATA
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Java – programación orientada a objetos programación ii – iee
Customización en ADempiere
Diseño de una Base de datos
Conferencia 2 TDA Lista lineal.
INTRODUCCION Hasta ahora solo hemos tenido que trabajar con algunas variables en cada uno de los programas que hemos realizado. Sin embargo, en más de.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
MC Beatriz Beltrán Martínez Verano 2018
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
Capítulo 7 USO DE BASES DE DATOS OBJETO- RELACIONALES.
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
Templates (en español: Pantillas, modelos, patrones)‏
CC 1002: Introducción a la Programación Clase 19
Programación Orientada a Objetos
Prof. Marcos Heredia.  Primitivos y No Primitivos.
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
2. PRINCIPIOS BASICOS DE MICROSOFT ACCESS. -Sistema que tiene la capacidad de realizar tareas de distinta índole utilizando herramientas que interactúan.
Transcripción de la presentación:

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

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.

Jerarquía de herencia de Framework

¿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,

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>

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).

Interfaz Collection

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.

Interfaz Collection

Interfaz List

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.

Interfaz List

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

Clases abstractas

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.

Detalle de ArrayList

Clase ArrayList

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

Ejemplo

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.

Clase Persona

Clase Cliente

Clase Producto

Creo los objetos de las clases

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

Constructores en ArrayList

Implementación del Ejemplo

Comportamiento en memoria

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()

Método “size” en ArrayList

Implementación del Ejemplo

Salida por pantalla Si corremos el programa, por pantalla nos muestra: 0 (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.

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.

Método “add” en ArrayList

Implementación del Ejemplo

Comportamiento en memoria

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

Interfaz Iterator

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

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

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();

Implementación del Ejemplo

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.

Implementación del Ejemplo

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

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

Implementación del Ejemplo

Comportamiento en memoria

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

Comportamiento en memoria

Salida del programa por pantalla

¿Preguntas? ó consultas FIN ¿Preguntas? ó consultas