Sesion09 Colecciones

March 25, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Sesion09 Colecciones...

Description

 

Programación amación Orientada a Objetos Progr

Colecciones

[email protected] Freddy Infantes Quiroz 2011

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Agenda •   Definir una Colección Colección y conocer sus métodos genéricos. •   Diferencias entre una Cole Colección cción y un Arreglo. •   Jerarquía de Clases de Cole Colecciones. cciones. •   Definir las Interfaces Set, List, Map y sus métodos. Colecciones ecciones.. •   Ejemplo implementando Col

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Collection •   Es similar similar a un arreglo arreglo pero a dif difer erenc encia ia que represen representa ta sólo a un conjunt conjunto o de Objetos. •

Collection   contiene la definición de todos los métodos genéricos que se deben Collection  implementar en las colecciones.

•   Cualquier objet objeto o puede puede ser alma almacenado cenado en una colección. colección. •   Todas las colecciones se encuentran en el paquete paquete java.util.*;  java.util.*; •

Java.util.Collection es la raíz de la jerarquía de las colecciones.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Diferencias: Colección vs Arreglo COLECCIONES

ARREGLOS

Pued Pu ede en ma mane neja jarr di dis sti tin nto tos s ti tipo pos s de Ob Obje jeto tos s.

Los Ar Arre regl glos os NO NO..

 Almacenan objetos del tipo Object  Almacenan Object y  y por lo tanto para pa ra rec recup upera erarr ob objeto jetos s des desde de un una a col colec ecció ción n se Los Arre Arreglos glos NO. NO. requiere hacer un casting explícito del objeto a su tipo. Representan de tipo Object.referencias a otros objetos pero solo

P ueden co con ten te ner objetos. dato tos s referencias anotros

Son más flexibles   por porqu que e pu pued eden en cr crec ecer  er  din iná ámic ica ame men nte te,, ma man nte ten ner en ord rde en a sus Los arreglos NO. elementos, agregar o eliminar elementos en forma eficiente.

Ing. Freddy Infantes Quiroz

pri rimi miti tivo vos s

y

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Jerarquía de Colecciones •   Java define define 2 interfaces interfaces para trabaj trabajar ar las colecciones. colecciones. (Co (Collle lect ctiion y Map ap). ). Y una interfaz de soporte llamada: Iterator 

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Jerarquía de Colecciones

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Métodos Genéricos •   La Interfaz Collection Collection define  define varios mé método todos s gen genér éricos icos..

int siz size() e();;

 

Numero de elementos.  

boolean boole an isEm isEmpty(); pty();

Si no contiene ningún elemento

boolean boole an conta contains(O ins(Objec bjectt elem element); ent); boolean boole an add(O add(Objec bjectt elem element); ent); remove(Object remove (Object element); Iterator Iter ator iter iterator ator(); ();

   

Agrega un elemento elemento..

 

Elimina un eleme elemento. nto.

 

boolean boole an cons constaint taintAl All(Col l(Collec lection tion c);

Si contiene ese elemento.

Devuelve una instancia de iterator.  

Contiene todos esos elementos.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Métodos Genéricos boolean boole an addA addAll(Co ll(Collec llection tion c);

 

Agrega colecci colección ón de elementos.

boolean boole an rem removeA oveAll(Co ll(Collec llection tion c)

   

boolean boole an reta retainA inAll(Co ll(Collec llection tion c) void clea clear(); r();

 

Elimina los elementos indicados indicados.. Eliminar todo Eliminar todos s los eleme elementos ntos meno menos s los indicados Elimina todos los elementos.

Objec Obj ect[ t[ ] toA toArra rray() y();;

 

Obje Ob ject ct[[ ] to toA Arr rray ay(O (Obj bjec ectt a[ ]) ]);;

Devu vue elve un arr rre eglo co con n to tod dos lo los s elementos.  

Devu vue elve un arr rre eglo co con n tod todos lo los s elem el emen ento tos. s. El ti tipo po ser erá á el de dell arre arregl glo o enviado.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

List •   Hereda de la interfaz Collecti Collection. on. •   Colección de eleme elementos ntos ordenad ordenados. os. •

Perm Pe rmite ite ele elemen mentos tos dup duplica licados dos y  y es accesible mediante índices. índices .



Métodos: - void add add(i (int nt in index dex,, Ob Objec jectt el elem emen ento) to);;  Agrega un elemento elemento en un índice especifico. especifico . - Object get get(in (intt in index dex); ); Devuelve el elemento dado el índice(index). - Object set set(i (int nt in index dex,, Ob Objec jectt el elem emen ento) to);; Reemplaza un elemento en un índice dado.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

List - Object remove remove(i (int nt in index dex); ); Elimina el elemento de esa posición. - boolean addAll addAll(i (int nt in inde dex, x, Co Coll llec ecti tion on c) c);;  Agrega elementos elementos en una posición dada. - int indexOf (Objec ( Objectt o); Devuelve la posición de la primera ocurrencia de ese elemento. - int lastIndexOf (Objec ( Objectt o); Devuelve la posición de la ultima ocurrencia ocurrenci a de ese elemento. - List subList subList(i (int nt de desd sde, e, in intt has asta ta); ); Devuelve una sublista comprendida en ese rango de posiciones. posici ones.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Implementaciones Implem entaciones de tipo List •

ArrayList:  –   Un ArrayList ArrayList es  es una lista de ta tama maño ño va vari riabl able e. Es decir que crece a medida que se le añaden elementos (mientras que el tamaño de un array común es fijo desde su creación).  –   Ofrece un tiempo de acceso óptimo, cuando dicho acceso es aleatorio.



Vector:  –   Semejante al ArrayList ArrayList,, pero sincronizado, lo que afecta al rendimiento. La sincronización es recomendable cuando más de un hilo de ejecución va a acceder a la Colección

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Implementaciones Implem entaciones de tipo List •

LinkedList:  –   Ofrece un tiempo de acceso óptimo óptimo cuando se agreg agrega a o se quita elementos elementos desde el inicio o final de una lista (típico para pilas).

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Map •   No hereda hereda de la interfaz interfaz Collection, se almacena almacena en parej parejas as (clave, valor). •

No pe perrmi mite te te ten ner cl clav aves es du dupl plic icad adas as,, pe pero ro si val alor ores es du dupl plic icad ados os..



Métodos:  – Object put put(O (Obj bjec ectt ke key y, Ob Obje ject ct val alu ue) e);;  Agrega una pareja(clave,valo pareja(clave,valor). r).  – Object get get(Obj (Object ect key key); );  Accede al valor de una clave.  – Object remove remove(Ob (Obje ject ct ke key) y);; Elimina una pareja por clave.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Map  – boolean containsKey containsKey(O (Obje bject ct ke key); y); Verifica la existencia de una clave.  – boolean containsValue containsValue(O (Obje bject ct val value) ue);; la existencia de un valor.  – Verifica int size size(); (); Devuelve el numero de parejas.  – boolean isEmpty isEmpty(); (); Si no contiene pareja alguna.  – void putAll putAll(M (Map ap t) t);;  Agrega parej parejas. as.  – void clear (); (); Elimina todas las parejas.  – pub public lic Se Sett KeySet(); Devuelve todas todas las claves en un Set.  – publ public ic Col Collec lection tion values values(); (); Devuelve los valores en una colección (Collection). Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Implementaciones Implem entaciones de tipo tipo Map



HashMap:  –   Ofrece un tiempo optimo cuando dicho acceso es aleatorio.  –   Su orden de iteración es impredecible.  – LinkedHashMap: •   Su orden de iteración es el de inserción Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Implementaciones Implem entaciones de tipo tipo Map •

Hashtable:  –   Es la versión versión sincronizad sincronizada a de HashMap. HashMap.  –   Ordena de forma Descendente.



TreeMap:  –   Su orden de iteración iteración depende de la implementación implementación que los elementos hagan de la interfaz java.lang.Comparable.  –   Ordena de forma Ascendente Ascendente..

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Map

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Set •   Hereda de la interfaz Collecti Collection. on. •   Colección desorde desordenada nada de objet objetos os y no per permi mite te el elem emen entos tos re repet petido idos. s. •   La interface SortedSet SortedSet hereda  hereda de la interface Set para dar un orden ascendente a sus elementos. •   La ve vent ntaj aja a de us usar ar Se Sets ts es qu que e pr pregu egunt ntar ar si un el elem ement ento o ya es está tá co cont nten enido ido mediante   “contains mediante contains()” ()” suele  suele ser muy eficiente. Entonces es conveniente utilizarlos cada vez que necesitemos una colección en que no importe el orden, pero que necesitemos preguntar si un elemento está o no.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Implementaciones Implem entaciones de tipo tipo Set •

HashSet: - Es el más usad usado o en Set Set.. - Acces Acceso o rápido cuando el acceso acceso es aleatorio. - El or orde den n de iter iteraci ación ón es imp impred redeci ecible. ble. LinkedHashSet: Su orden de iteración es el orden de inserción.



TreeSet: iteración depende de la implementación implementación que los elementos hagan  –   Su orden de iteración de la interface java.Lang.Comparable: public int compareTo(Obj compareTo(Object ect o);

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Set

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Interfaces de soporte •

Iterator: Dispone de métodos para rec ecor orrrer una co cole lecc cció ión n(Sólo hacia adelante) y para borrar elementos.



ListIterator: Deriva de Iterator y permite recorrer listas en ambos sentidos.



Comparable: Declara el método compareTo(). La clase que implemente dicho interfaz definirá el llamado orden natural para sus objetos el cual será utilizado en las estructuras de datos.



Comparator: Declara Decla ra el mét étod odo o co com mpar pare( e(). ). Propo Proporc rcio iona na una form forma a más fle flexi xibl ble e de te tene ner  r  dist di stin inttas fo form rmas as de co com mpa para rarr ob objjet etos os per ero o es mas co cost stos oso o en tie iem mpo de codificación.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Iterator  •   La Interfaz Interfaz Iterator Iterator dispone dispone de métodos métodos para recorrer una colección y para borrar bor rar ele elemen mentos. tos. Public Iterator iterator();

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Iterator  •

Métodos:  – bool boolean ean ha hasNe sNext(); xt(); Devuelve true si tiene mas elementos.  – Obj Object ect ne next() xt();; Devuelve la clave del primer elemento y se queda apuntando al sgte.

 – void void rem remov ove(); e(); Elimina el primer elemento y se queda apuntando al siguiente. sigui ente.

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Ejem Ej empl plos os de Apl Aplic icac ació ión n (Usa (U sand ndo o Ar Arra rayL yLis ist) t)

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Aplicación •   Creación de la Colección ArrayList ArrayList para  para una Clase “Cuenta” Clase  “Cuenta”.. Con Arreglos:

Con ArrayList:

public cla public class ss Cuenta { private Cuenta cuentas[];

public cla public class ss Cuenta { private ArrayList ArrayList cuentas;  cuentas;

private int nCuentas; public Cuenta Cuenta() () { public Cuenta Cuenta() () { cuentas }

= new Cuenta[100];

}

}

cuentas = new ArrayList() ArrayList();;

nCuentas = 0;

Ing. Freddy Infantes Quiroz

 

UPAO : Escuela de Ingeniería de Computación y Sistemas Curso: Programación Orientada a Objetos Ciclo : 2011

Aplicación •   Método agr agrega egarr Cu Cuent enta: a: Con Arreglos:

Con ArrayList:

public boole boolean an agregarCuenta agregarCuenta(Cuenta (Cuenta oC) { if(nCuentas
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF