1Prower Point -Trabajo Collecciones_Alberto_Cortez - Copia

Embed Size (px)

Citation preview

  • 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