Post on 06-Jul-2018
transcript
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
1/53
ArrayList
Lugar: Autor:
Alberto Alejandro Cortez
Curso: Calidad de Software: Programación Modular y Anti-Patrones de Proyecto
Año: 2010
Collecciones
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
2/53
Collection Framework
Un marco (framework) de trabajo es un conjunto deinterfaces y/o clases roorcionados ara resol!er un
roblema determinado"
#a lataforma $a!a define a una interfaz como medio araimlementar est%ndares e instrucciones"
&l marco define los comortamientos de los objetos de una
colecci'n utilizando una jerarua de interfaces"
&l marco define seis interfaces" *ay dos clases raz en la arte suerior de la jerarua" +stas son las interfacescollection y ma"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
3/53
$erarua de ,erencia de Framework
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
4/53
-.u es una colecci'n&s un nico objeto ue reresenta a un ruo de objetos"
#a clase con la ue se crean los objetos ue reresentan unacolecci'n3 fueron roramadas or aluien y no forma arte
de la caracterstica del roio lenuaje"
#os objetos de la colecci'n se denominan elementos"
#as colecciones tratan normalmente con muc,os tios deobjetos3 todos los cuales descienden de un tio adre comn"(el tio adre comn es la clase 4bject)"
5ara almacenar un int en un objeto 6raer3
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
5/53
7u lonitud es !ariable"
5ueden almacenar objetos de cualuier tio de clase"
&n la !ersi'n 1"8 de ja!a se uede colocar una restricci'n
con la cual se limite el tio de objeto ue almacene unacolecci'n"
&j" Collection 9Cliente:
&j" ;a 9Auto:
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
6/53
? 7on una caracterstica del roio
lenuaje ja!a" ? #onitud fija una !ez creados"
? 5ueden almacenar tio rimiti!os"
? 5ueden almacenar solo tios de datos ,omoneos (todo int3 ' todo lon '
todos objetos de la misma clase)"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
7/53
@nterfaz Collection
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
8/53
@nterfaz Collection
&ste interfaz3 como tio3 es utilizado ara maniular colecciones cuandose desea una eneralidad m%ima"
&ste es el interfaz adre de 7et y #ist" &l framework no roorcionaninuna imlementaci'n suya3 sino de sus subtios"
#a interfaz collection se utiliza ara cualuier colecci'n simle3desordenada y ue ueda tener dulicados" Bo ,ay restricciones"
Cualuier tio de objeto uede utilizarse y ueden eistir mltiles casosdel mismo"
&sta interfaz soorta mtodos ara arear3 uitar3 contar y !erificar loselementos de una colecci'n"
&n ocasiones una colecci'n se denomina ba (bolsa)3 ya ue no imone
ninuna rela"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
9/53
@nterfaz Collection
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
10/53
@nterfaz #ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
11/53
@nterfaz #ist#a interfaz #ist ,ereda de la interfaz Collection"
&stablece estiulaciones adicionales a las del interfaz Collection en losmtodos add3 euals3 ,as,Code3 iterator y remo!e" Dambin aEade nue!osmtodos a los all declarados ara un acceso osicional"
#as listas son colecciones ordenadas3 y ueden tener dulicados"&l orden uede ser el orden natural3 ue es el orden en el cual los objetos searearon a la lista"
5uesto ue la lista est% ordenada3 los objetos de la misma ueden colocarse
en un ndice" #a rimera osici'n en una lista es 0"
&isten distintas imlementaciones de esta interfaz> Array#ist3
#inked#ist3ector"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
12/53
@nterfaz #ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
13/53
Clases abstractas
&isten unas clases en ja!a"util ue emiezan or Abstract G nombre deinterface"
&stas son imlementaciones arciales de dic,os interfaces" #as
imlementaciones de ro'sito eneral deri!an de ellas"
7u intenci'n es roorcionar un unto de artida a la ,ora de construir nuestras roias imlementaciones de los interfaces b%sicos3 e!itando la imlementaci'nde todos los mtodos definidos en ellos"
Collection>
#as clases abstractas son> AbstrcatCollection3 Abstract#ist3 Abstract7et3Abstract7euential#ist
;a>
#as clases abstractas son> Abstract;a
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
14/53
Clases abstractas
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
15/53
Clase Array#istHestiona un arrelo interno de referencia a objetos 4bject"
Albera elementos de tio 4bject"
7e debe realizar un moldeado siemre ue se uiera utilizarun objeto del Array#ist"
5ara crecer ' disminuir3 crea nue!os arrelos y de esta formamaniula el arrelo interno ue osee"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
16/53
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
17/53
Clase Array#ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
18/53
5auete
#as colecciones se encuentran en el auete> ja!a"util de las libreras de ja!a"
Array#ist forma arte del auete ja!a"utildesde la !ersi'n 1"2 del jdk
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
19/53
Ejemplo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
20/53
Contenido del ejemlo
&n el ejemlo se utilizan I clases>
J 5ersona
J Cliente (,ereda de ersona) J 5roducto
Adem%s se utiliza una clase rincial dondese demuestra el uso de Array#ist"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
21/53
Clase 5ersona
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
22/53
Clase Cliente
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
23/53
Clase 5roducto
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
24/53
Creo los objetos de las clases
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
25/53
Constructores
Array#ist osee I constructores de los cualesusaremos los siuientes>
J ublic Array#ist(int initialCaacity)
J ublic Array#ist()
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
26/53
Constructores en Array#ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
27/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
28/53
Comortamiento en memoria
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
29/53
;todo KsizeL
&n nuestro ejemlo utilizaremos el mtodo>size el cual de!uel!e la cantidad de
elementos ue se uardaron en un Array#ist"
J ublic int size()
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
30/53
;todo KsizeL en Array#ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
31/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
32/53
7alida or antalla
7i corremos el rorama3 or antalla nosmuestra> 0 (cero)
5reunta>
-7i creamos una colecci'n y esta a su !ezcreo un arrelo de 10 referencias 4bject
-Bo debera mostrar 10 or antalla
Mesuesta>
&l mtodo de!uel!e la cantidad de elementos
ue no referencia a null"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
33/53
;todo KaddL&n nuestro ejemlo usaremos el mtodo add el cual estasobre carado"
J ublic boolean add(4bject o)
Area elementos al final del la lista"
J ublic !oid add(int inde3 4bject element)
Area elementos en la osici'n indicada" #os elementos en la osici'n inde y los ue est%n or
encima se deslazan or encima del areado"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
34/53
;todo KaddL en Array#ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
35/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
36/53
Comortamiento en memoria
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
37/53
Mecorrer un Array#ist
5ara oder recorrer un colecci'n se utiliza la interfaz@terator"
&sta interfaz ro!ee los mtodos>
,asBet>
#a llamada reetiti!a a net ermite recorrer la colecci'n
elemento or elemento" Cuando llea al final de la colecci'nlanza Bo7uc,&lement&cetion
remo!e>
&limina el ultimo elemento de!uelto or net
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
38/53
@nterfaz @terator
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
39/53
Como funciona @terator
#a clase Array#ist osee un mtodo llamadoiterator ue de!uel!e un @terator" &l mtodolo ,ereda de Abstract#ist"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
40/53
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
41/53
7e crea una !ariable de tio @terator (no se ueden crearobjetos or ue es una interfaz) y utilizando el mtodoiterator obteno una referencia al iterador de la colecci'nue estoy utilizando"
Formato>
@terator iter N colecci'n"iterator()Ow,ile (iter",asBet())P //5re si tiene elem" #a colecci'n
4bject obj N iter"net()O //4bteno el elemento
Q
Antiuamente se utilizaba net&lement y ,as;ore&lementde la interfaz &numeration
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
42/53
Clientes cliAu N (Clientes) iter"net()O
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
43/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
44/53
Arear objetos diferentes
Como dijimos al comienzo una colecci'n uede almacenarobjetos creados or diferente tios de clases"
#o ue trae como incon!eniente tener ue definir como se
tratara el objeto ue se recuera de la colecci'n"
&s decir adem%s de realizar un castin tambin se debedeterminar a ue clase ertenece ese objeto almacenado" #a
forma de realizar este aso3 es a tra!s del oeradorinstanceof el cual de!uel!e !erdadero si un objeto ertenecea una clase determinada"
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
45/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
46/53
;todo KaddL con ar%metros
&ste mtodo como !imos recibe dos ar%metros3 el ndicedonde se uiere colocar el objeto y el objeto"
J ublic !oid add(int inde3 4bject element) Funcionamiento>
Dodos los elementos ue est%n en la osici'n indicada y los
ue se encuentran or encima de el son deslazados araarriba ara oder realizar el ,ueco ue ermita colocar elnue!o elemento
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
47/53
;todo KaddL con ar%metros en
en Array#ist
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
48/53
@mlementaci'n del &jemlo
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
49/53
Comortamiento en memoria
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
50/53
Arear objetos dulicadosComo dijimos un #ist uede almacenar objetos dulicados" 5ara lo cualnuestro en nuestro ejemlo almacenaremos dos !eces el mismo objeto
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
51/53
Comortamiento en memoria
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
52/53
7alida del rorama or antalla
8/17/2019 1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia
53/53
F@B
-5reuntas ' consultas