SlideShare une entreprise Scribd logo
1  sur  14
C.F.P.E. JUAN XXIII – ALCORCÓN
                           Departamento de Desarrollo de Aplicaciones Informáticas


                                COLECCIONES

1.   Definición y ventajas

2.   Interfaces de Colección predefinidos

       •    Collection

       •    List

       •    Set

       •    Map

3.   Clases colección predefinidas

       •    Implementación de List: ArrayList, LinkedList

       •    Implementación de Set: HashSet

       •    Implementación de Map: HashMap

       •    Clases de soporte a las colecciones: Collections, Arrays.

4.   Colecciones personalizadas

       •    AbstractList

       •    AbstractSet


                                                                                     1
C.F.P.E. JUAN XXIII – ALCORCÓN
                                   Departamento de Desarrollo de Aplicaciones Informáticas


                           COLECCIONES. Concepto

•   Coleccion: objeto que agrupa múltiples elementos (objetos).

•   Utilidad: almacenar, recuperar, manipular conjuntos de datos.

•   Ejemplos reales de colecciones:
          asignaturas de un curso
          controles de una ventana
          Líneas de una factura
          Contactos de una agenda

•   Framework de colecciones: arquitectura unificada para representar y manipular
    colecciones:
        • Interfaces: especifican métodos para manipular colecciones, pero no su implementación.
        • Implementaciones: clases que implementan los interfaces de colección.
        • Algoritmos:
             –   codificados en métodos.
             –   Manipulan las estructuras de datos internas de las colecciones
             –   Son algoritmos habituales en estructuras estáticas y dinámicas
             –   ordenación, búsqueda binaria, inserción en listas, …

•   Ventaja: proporciona un métodos estándar de manipulación de grupos de objetos




                                                                                                   2
C.F.P.E. JUAN XXIII – ALCORCÓN
                                      Departamento de Desarrollo de Aplicaciones Informáticas


                               COLECCIONES. Interfaces


                                    Jerarquía de interfaces




–     Collection : Raiz de la jerarquía de interfaces, no tiene implementaciones.
–     List: También llamadas secuencias. Colecciónes indexadas. Admiten duplicados.
–     Set: Representación matemática de conjunto. No indexada. No admite duplicados.
–     SortedSet : Conjuntos ordenados.
–     Queue: Representaciones de estructuras FIFO-LIFO. No admite nulos.
–     Map: Almacenamientos de parejas valor-clave. La clave equivale al índice. No admite
      clasves duplicadas. También se conocen como diccionarios.
–     SortedMap: Mapa ordenado según sus claves.


    Referencia completa: http://download.oracle.com/javase/6/docs/technotes/guides/collections/index.html
                                                                                                            3
C.F.P.E. JUAN XXIII – ALCORCÓN
                                  Departamento de Desarrollo de Aplicaciones Informáticas


                           COLECCIONES. Interfaces
                                Interface Collection




–   size() : número de elementos.
–   isEmpty () : ´devuelve true si la colección no tiene elementos
–   contains ( …) : true si existe un elemento e tal que (o==null) ? e==null : o.equals(e)
–   add (... ): añade el elemento a la colección. Devulve true si se agregó.
–   remove ( ... ) : elimina el objeto de la lista si existe.
–   iterator ( ) : devuelve un objeto que implementa Iterator.
–   //optional: lanzan “UnsupportedOperationException” si no estan implementados
–   //Bulk operations: métodos que “operan de colección a colección” en una sola llamada

                                                                                             4
C.F.P.E. JUAN XXIII – ALCORCÓN
                                       Departamento de Desarrollo de Aplicaciones Informáticas


                               COLECCIONES. Interfaces
                                             Interface List




–   get( … ) : devuelve el elemento en la posición index. 0 <= index < size()
–   set( … ) : coloca elemento en la posición index. 0 <= index < size()
–   add( … ): inserta al final
–   add (index, element): inserta en la posicion index desplazando si es necesario. 0 <= index <= size()
–   remove (index) : Devuelve y elimina de la lista elemento en la posicion index. 0 <= index < size()
–   addAll (index, Collection): añade la colección a la lista a partir de la posición expecificada.
–   int indexOf ( ): devuelve la posición del primer elemento igual o.
–   int indexOf ( ): devuelve la posición del último elemento igual o.
–   List< E > subList (from, to) : devuelve una sublista desde la posicion “from” hasta la posición “to” exclusive.


                                                                                                                      5
C.F.P.E. JUAN XXIII – ALCORCÓN
                                 Departamento de Desarrollo de Aplicaciones Informáticas


                          COLECCIONES. Interfaces
                                        Interface Set




–   Todos los métodos tienen el mismo comportamiento que el interface Collection, salvo:

                 Los métodos add NO admiten insertar elementos DUPLICADOS .




                                                                                           6
C.F.P.E. JUAN XXIII – ALCORCÓN
                                              Departamento de Desarrollo de Aplicaciones Informáticas


                                     COLECCIONES. Interfaces
                                                   Interface Map




–   Mapa: es un objeto que almacena parejas key-value.
–   No contiene keys (claves) duplicadas
–   Cada clave debe tener al menos un valor.
–   Modela el concepto de “función matemática”.
–   K: Tipo de dato de la clave de cada elemento.
–   V: Tipo de dato del valor de cada elemento.




                                                                                                        7
C.F.P.E. JUAN XXIII – ALCORCÓN
                                            Departamento de Desarrollo de Aplicaciones Informáticas


                                     COLECCIONES. Interfaces
                                                 Interface Map
– V put(K key, V value): asocia value a key. Si ya existia Key sustituye value. Devuelve value antiguo.
– V get(Object key): recupera el value asociado a key.
– V remove(Object key): elimina el “mapeo” (clave-valor) asociado a la key.
– boolean containsKey(Object key): devuelve true si el mapa contiene la clave
– boolean containsValue(Object value); devuelve true si el mapa contiene el valor (equals).
– int size(): devuelve el número de elementos contenidos en el mapa.
– boolean isEmpty(): devuelve true si el mapa no contiene elementos.


– // Bulk operations
– void putAll(Map<? extends K, ? extends V> m): utiliza put para todos los mapeos del parametro.
– void clear(): borra todos los elementos del mapa


– // Collection Views
– public Set<K> keySet(); devuelve un Set de “claves” (key).
– public Collection<V> values(); devuelve una Colección de Values (valores).
– public Set<Map.Entry<K,V>> entrySet(): devuelve un Set de objetos que implementan entradas (parejas
              clave-valor o Map.Entry) del mapa.
– // Interface para entrySet
– public interface Entry {
– K getKey();
– V getValue();
– V setValue(V value);
–}
                                                                                                          8
C.F.P.E. JUAN XXIII – ALCORCÓN
                               Departamento de Desarrollo de Aplicaciones Informáticas


             COLECCIONES. Implementaciones. List

•   ArrayList:
        • Almacena internamente un vector dinámico.
        • Tiempo constante en acceso a los elementos. Se calcula la posición.
        • Borrados mas costosos.

        • Métodos específicos:
            •   ArrayList (capacity): construye el array con una capacidad inicial

            •   ArrayList(Collection): crea el array list desde una colección

            •   ensureCapacity (capacity): incrementa la capacidad si es necesario hasta capacity.

            •   trimToSize(). Reduce la capacidad hasta el número de elementos (size).

•   Vector: Implementación equivalente a ArrayList, pero sincronizada.

•   LinkedList:
        • Almacena los elementos en una lista enlazada
        • Tiempo variable en acceso a los elementos. Busqueda secuencia.
        • Tiempo constante en operaciones de inserción y borrado.
        • Implementa los interfaces List, Queue y Deque
        • Se puede emplear crear estructuras FIFO (Cola) y LIFO (Pila).



                                                                                                     9
C.F.P.E. JUAN XXIII – ALCORCÓN
                              Departamento de Desarrollo de Aplicaciones Informáticas


              COLECCIONES. Implementaciones. Map

•   Map:
       •    Implementa todos los métodos del Interface Map, incluso los opcionales.
       •    Admite claves y valores nulos.
       •    Internamente almacena los elementos en un array de objetos Map.Entry.
       •    Proporciona tiempo de acceso constante con las funciones get, put utilizando
            para ello la función hash.
        •   Capacity: Número de “huecos” para ubicar las Map.Entry.
        •   Factor de carga: % de llenado del mapa antes que crezca su capacidad. Por
            defecto 75%.
        •   Implementación no sincronizada.
        •   Multimapa: Mapa cuyos values son colecciones.


•   TreeMap: Mapa que almacena sus elementos en una estructura Arbol.



•   LinkedHashMap: Mapa que almacena sus elementos en una lista enlazada.




                                                                                           10
C.F.P.E. JUAN XXIII – ALCORCÓN
                                Departamento de Desarrollo de Aplicaciones Informáticas


                COLECCIONES. Implementaciones. Set

•   HashSet:
       • Internamente envuelve un HasMap para evitar que los elementos se repitan
       • No garantiza el orden de los elementos.
       • Es una implementación no sincronizada
       • Métodos específicos:
            •    HashSet ( ): Crea un Set vacío.
            •    HahsSet (Collection ): Crea un HashSet a partir de una Collection.
            •    HashSet (InitialCapacity): Crea un HashSet con una capacidad inicial.




•   TreeSet: Almacena un Set en un árbol.



•   LinkedHashSet: Almacena un Set en una lista enlazada.




                                                                                          11
C.F.P.E. JUAN XXIII – ALCORCÓN
                                Departamento de Desarrollo de Aplicaciones Informáticas


                   COLECCIONES. Clase Collections

•   Collections: Clase que proporciona métodos para manipular colecciones.

•   Metodos más comunes
        •   addAll : Añade a una colección una lista de elementos que se pasan por parámetro.
        •   binarySearch: Realiza busqueda binaria. Permite pasar por parámetro un Comparator.
        •   disjoint : devuelve true si dos colecciones (parametros) no tienen elementos en común.
        •   fill: reemplaza todos los elementos de la colección por un objeto especificado (parámetro)
        •   frecuency: devuelve el numero de repeticiones de un objeto dentro de una colección
        •   list: devuelve un ArrayList con los elementos de la colección.
        •   max: devuelve el mayor objeto de la colección. Se puede pasar un Comparador por parámetro.
        •   min: devuelve el menor objeto de la colección.
        •   newSetFromMap: Devuelve un set “envolviendo” el mapa enviado por parámetro.
        •   replaceAll: reemplaza cada ocurrencia de una valor de la colección por un valor nuevo.
        •   shuffle: permita aleatoriamente los elementos de una lista.
        •   sort: ordena los elementos de la lista. Se puede pasar un comparador por parámetro.
        •   swap: intercambia dos elementos de una lista. Se indican las posiciones por parámetro.




                                                                                                         12
C.F.P.E. JUAN XXIII – ALCORCÓN
                                   Departamento de Desarrollo de Aplicaciones Informáticas


             COLECCIONES. Colecciones personalizadas

•   Custom Collections: Son colecciones que implementan los interfaces del Framework de colecciones
    o heredan de clases colección abstractas.

•   Clases abstractas de colección: Incorporan implementaciones de los métodos de interfaces de
    colección pero no todos. Las clases personalizadas pueden reutilizar su implementación heredando de
    ellas.

         • AbstractCollection : Una colección que no es ni Set, ni List. Como mínimo proporcionar
             iterator y size().

         • AbstractSet: Implementa un Set. Su uso es idéntico a AbstractCollection.

         • AbstractList: Una lista que envuelve un espacio de almacenamiento aleatorio (un array).

                •   Acceso a los elementos: get (obligatorio). set, remove y add opcionales.

         • AbstractSequentialList : Una lista que envuelve un espacio de almacenamiento de acceso
             secuencial (lista enlazada).

                •   Como mínimo proporcionar listIterator y el método size().

         • AbstractQueue: Como mínimo debe proporcionar offer, peek, poll, y size( ) y un iterator que
             soporte remove.

         • AbstractMap: Como mínimo debe proporcionar la vista entrySet. Si es modificable
             proporcionar también put.


                                                                                                          13
C.F.P.E. JUAN XXIII – ALCORCÓN
             Departamento de Desarrollo de Aplicaciones Informáticas


COLECCIONES. Colecciones personalizadas

  Clase personalizada heredando de AbstractList




                                                                       14

Contenu connexe

Tendances

Estructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasEstructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasIARINAIA
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilasgeova666
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10chrisflores001
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pilajefer
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Eli Diaz
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilasAndreita Enriquez
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gioRobert Wolf
 

Tendances (18)

Estructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasEstructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colas
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Python Pilas y Colas
Python Pilas y ColasPython Pilas y Colas
Python Pilas y Colas
 
Colas
ColasColas
Colas
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Saiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosaSaiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosa
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Fila,pila y cola ..
Fila,pila y cola ..Fila,pila y cola ..
Fila,pila y cola ..
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilas
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gio
 

Similaire à Unidad 6. colecciones (20)

14 colecciones
14 colecciones14 colecciones
14 colecciones
 
Presentación1
Presentación1Presentación1
Presentación1
 
Informe Poo
Informe PooInforme Poo
Informe Poo
 
Estructura de datos pilas y colas
Estructura de datos pilas y colasEstructura de datos pilas y colas
Estructura de datos pilas y colas
 
Colecciones
ColeccionesColecciones
Colecciones
 
Unidad 4. interfaces
Unidad 4. interfacesUnidad 4. interfaces
Unidad 4. interfaces
 
Preguntas d eloy
Preguntas d eloyPreguntas d eloy
Preguntas d eloy
 
Introduccion ilwis
Introduccion ilwisIntroduccion ilwis
Introduccion ilwis
 
Programacion
ProgramacionProgramacion
Programacion
 
8 introduccion colecciones
8 introduccion colecciones8 introduccion colecciones
8 introduccion colecciones
 
Apache spark meetup
Apache spark meetupApache spark meetup
Apache spark meetup
 
Procesamiento de datos a gran escala con Apache Spark
Procesamiento de datos a gran escala con Apache SparkProcesamiento de datos a gran escala con Apache Spark
Procesamiento de datos a gran escala con Apache Spark
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Programacion orientada a objetos Java
Programacion orientada a objetos JavaProgramacion orientada a objetos Java
Programacion orientada a objetos Java
 
Unidad i poo avanzada
Unidad i   poo avanzadaUnidad i   poo avanzada
Unidad i poo avanzada
 
Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1
 
JAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONESJAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONES
 
Exposicion
ExposicionExposicion
Exposicion
 
14
1414
14
 

Plus de Roberto Moreno Doñoro (20)

21 bibsw tablasyotros
21 bibsw tablasyotros21 bibsw tablasyotros
21 bibsw tablasyotros
 
20 curvaselipticas
20 curvaselipticas20 curvaselipticas
20 curvaselipticas
 
19 protocoloscripto
19 protocoloscripto19 protocoloscripto
19 protocoloscripto
 
18 correoseguro
18 correoseguro18 correoseguro
18 correoseguro
 
17 certdigitalespkcs
17 certdigitalespkcs17 certdigitalespkcs
17 certdigitalespkcs
 
16 autenticafirma
16 autenticafirma16 autenticafirma
16 autenticafirma
 
15 funcioneshash
15 funcioneshash15 funcioneshash
15 funcioneshash
 
14 cifraasimetrica
14 cifraasimetrica14 cifraasimetrica
14 cifraasimetrica
 
13 ciframochilas
13 ciframochilas13 ciframochilas
13 ciframochilas
 
12 cifrasimetrica
12 cifrasimetrica12 cifrasimetrica
12 cifrasimetrica
 
11 cifraflujo
11 cifraflujo11 cifraflujo
11 cifraflujo
 
10 ciframoderna
10 ciframoderna10 ciframoderna
10 ciframoderna
 
09 cifraclasica
09 cifraclasica09 cifraclasica
09 cifraclasica
 
08 compalgoritmos
08 compalgoritmos08 compalgoritmos
08 compalgoritmos
 
07 teorianumeros
07 teorianumeros07 teorianumeros
07 teorianumeros
 
06 teoriainfo
06 teoriainfo06 teoriainfo
06 teoriainfo
 
05 gestionseg
05 gestionseg05 gestionseg
05 gestionseg
 
04 calidadinfo
04 calidadinfo04 calidadinfo
04 calidadinfo
 
02 breveintrocripto
02 breveintrocripto02 breveintrocripto
02 breveintrocripto
 
01 presentalibro
01 presentalibro01 presentalibro
01 presentalibro
 

Dernier

Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 

Dernier (20)

Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

Unidad 6. colecciones

  • 1. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES 1. Definición y ventajas 2. Interfaces de Colección predefinidos • Collection • List • Set • Map 3. Clases colección predefinidas • Implementación de List: ArrayList, LinkedList • Implementación de Set: HashSet • Implementación de Map: HashMap • Clases de soporte a las colecciones: Collections, Arrays. 4. Colecciones personalizadas • AbstractList • AbstractSet 1
  • 2. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Concepto • Coleccion: objeto que agrupa múltiples elementos (objetos). • Utilidad: almacenar, recuperar, manipular conjuntos de datos. • Ejemplos reales de colecciones: asignaturas de un curso controles de una ventana Líneas de una factura Contactos de una agenda • Framework de colecciones: arquitectura unificada para representar y manipular colecciones: • Interfaces: especifican métodos para manipular colecciones, pero no su implementación. • Implementaciones: clases que implementan los interfaces de colección. • Algoritmos: – codificados en métodos. – Manipulan las estructuras de datos internas de las colecciones – Son algoritmos habituales en estructuras estáticas y dinámicas – ordenación, búsqueda binaria, inserción en listas, … • Ventaja: proporciona un métodos estándar de manipulación de grupos de objetos 2
  • 3. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Jerarquía de interfaces – Collection : Raiz de la jerarquía de interfaces, no tiene implementaciones. – List: También llamadas secuencias. Colecciónes indexadas. Admiten duplicados. – Set: Representación matemática de conjunto. No indexada. No admite duplicados. – SortedSet : Conjuntos ordenados. – Queue: Representaciones de estructuras FIFO-LIFO. No admite nulos. – Map: Almacenamientos de parejas valor-clave. La clave equivale al índice. No admite clasves duplicadas. También se conocen como diccionarios. – SortedMap: Mapa ordenado según sus claves. Referencia completa: http://download.oracle.com/javase/6/docs/technotes/guides/collections/index.html 3
  • 4. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Interface Collection – size() : número de elementos. – isEmpty () : ´devuelve true si la colección no tiene elementos – contains ( …) : true si existe un elemento e tal que (o==null) ? e==null : o.equals(e) – add (... ): añade el elemento a la colección. Devulve true si se agregó. – remove ( ... ) : elimina el objeto de la lista si existe. – iterator ( ) : devuelve un objeto que implementa Iterator. – //optional: lanzan “UnsupportedOperationException” si no estan implementados – //Bulk operations: métodos que “operan de colección a colección” en una sola llamada 4
  • 5. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Interface List – get( … ) : devuelve el elemento en la posición index. 0 <= index < size() – set( … ) : coloca elemento en la posición index. 0 <= index < size() – add( … ): inserta al final – add (index, element): inserta en la posicion index desplazando si es necesario. 0 <= index <= size() – remove (index) : Devuelve y elimina de la lista elemento en la posicion index. 0 <= index < size() – addAll (index, Collection): añade la colección a la lista a partir de la posición expecificada. – int indexOf ( ): devuelve la posición del primer elemento igual o. – int indexOf ( ): devuelve la posición del último elemento igual o. – List< E > subList (from, to) : devuelve una sublista desde la posicion “from” hasta la posición “to” exclusive. 5
  • 6. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Interface Set – Todos los métodos tienen el mismo comportamiento que el interface Collection, salvo: Los métodos add NO admiten insertar elementos DUPLICADOS . 6
  • 7. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Interface Map – Mapa: es un objeto que almacena parejas key-value. – No contiene keys (claves) duplicadas – Cada clave debe tener al menos un valor. – Modela el concepto de “función matemática”. – K: Tipo de dato de la clave de cada elemento. – V: Tipo de dato del valor de cada elemento. 7
  • 8. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Interfaces Interface Map – V put(K key, V value): asocia value a key. Si ya existia Key sustituye value. Devuelve value antiguo. – V get(Object key): recupera el value asociado a key. – V remove(Object key): elimina el “mapeo” (clave-valor) asociado a la key. – boolean containsKey(Object key): devuelve true si el mapa contiene la clave – boolean containsValue(Object value); devuelve true si el mapa contiene el valor (equals). – int size(): devuelve el número de elementos contenidos en el mapa. – boolean isEmpty(): devuelve true si el mapa no contiene elementos. – // Bulk operations – void putAll(Map<? extends K, ? extends V> m): utiliza put para todos los mapeos del parametro. – void clear(): borra todos los elementos del mapa – // Collection Views – public Set<K> keySet(); devuelve un Set de “claves” (key). – public Collection<V> values(); devuelve una Colección de Values (valores). – public Set<Map.Entry<K,V>> entrySet(): devuelve un Set de objetos que implementan entradas (parejas clave-valor o Map.Entry) del mapa. – // Interface para entrySet – public interface Entry { – K getKey(); – V getValue(); – V setValue(V value); –} 8
  • 9. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Implementaciones. List • ArrayList: • Almacena internamente un vector dinámico. • Tiempo constante en acceso a los elementos. Se calcula la posición. • Borrados mas costosos. • Métodos específicos: • ArrayList (capacity): construye el array con una capacidad inicial • ArrayList(Collection): crea el array list desde una colección • ensureCapacity (capacity): incrementa la capacidad si es necesario hasta capacity. • trimToSize(). Reduce la capacidad hasta el número de elementos (size). • Vector: Implementación equivalente a ArrayList, pero sincronizada. • LinkedList: • Almacena los elementos en una lista enlazada • Tiempo variable en acceso a los elementos. Busqueda secuencia. • Tiempo constante en operaciones de inserción y borrado. • Implementa los interfaces List, Queue y Deque • Se puede emplear crear estructuras FIFO (Cola) y LIFO (Pila). 9
  • 10. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Implementaciones. Map • Map: • Implementa todos los métodos del Interface Map, incluso los opcionales. • Admite claves y valores nulos. • Internamente almacena los elementos en un array de objetos Map.Entry. • Proporciona tiempo de acceso constante con las funciones get, put utilizando para ello la función hash. • Capacity: Número de “huecos” para ubicar las Map.Entry. • Factor de carga: % de llenado del mapa antes que crezca su capacidad. Por defecto 75%. • Implementación no sincronizada. • Multimapa: Mapa cuyos values son colecciones. • TreeMap: Mapa que almacena sus elementos en una estructura Arbol. • LinkedHashMap: Mapa que almacena sus elementos en una lista enlazada. 10
  • 11. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Implementaciones. Set • HashSet: • Internamente envuelve un HasMap para evitar que los elementos se repitan • No garantiza el orden de los elementos. • Es una implementación no sincronizada • Métodos específicos: • HashSet ( ): Crea un Set vacío. • HahsSet (Collection ): Crea un HashSet a partir de una Collection. • HashSet (InitialCapacity): Crea un HashSet con una capacidad inicial. • TreeSet: Almacena un Set en un árbol. • LinkedHashSet: Almacena un Set en una lista enlazada. 11
  • 12. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Clase Collections • Collections: Clase que proporciona métodos para manipular colecciones. • Metodos más comunes • addAll : Añade a una colección una lista de elementos que se pasan por parámetro. • binarySearch: Realiza busqueda binaria. Permite pasar por parámetro un Comparator. • disjoint : devuelve true si dos colecciones (parametros) no tienen elementos en común. • fill: reemplaza todos los elementos de la colección por un objeto especificado (parámetro) • frecuency: devuelve el numero de repeticiones de un objeto dentro de una colección • list: devuelve un ArrayList con los elementos de la colección. • max: devuelve el mayor objeto de la colección. Se puede pasar un Comparador por parámetro. • min: devuelve el menor objeto de la colección. • newSetFromMap: Devuelve un set “envolviendo” el mapa enviado por parámetro. • replaceAll: reemplaza cada ocurrencia de una valor de la colección por un valor nuevo. • shuffle: permita aleatoriamente los elementos de una lista. • sort: ordena los elementos de la lista. Se puede pasar un comparador por parámetro. • swap: intercambia dos elementos de una lista. Se indican las posiciones por parámetro. 12
  • 13. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Colecciones personalizadas • Custom Collections: Son colecciones que implementan los interfaces del Framework de colecciones o heredan de clases colección abstractas. • Clases abstractas de colección: Incorporan implementaciones de los métodos de interfaces de colección pero no todos. Las clases personalizadas pueden reutilizar su implementación heredando de ellas. • AbstractCollection : Una colección que no es ni Set, ni List. Como mínimo proporcionar iterator y size(). • AbstractSet: Implementa un Set. Su uso es idéntico a AbstractCollection. • AbstractList: Una lista que envuelve un espacio de almacenamiento aleatorio (un array). • Acceso a los elementos: get (obligatorio). set, remove y add opcionales. • AbstractSequentialList : Una lista que envuelve un espacio de almacenamiento de acceso secuencial (lista enlazada). • Como mínimo proporcionar listIterator y el método size(). • AbstractQueue: Como mínimo debe proporcionar offer, peek, poll, y size( ) y un iterator que soporte remove. • AbstractMap: Como mínimo debe proporcionar la vista entrySet. Si es modificable proporcionar también put. 13
  • 14. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES. Colecciones personalizadas Clase personalizada heredando de AbstractList 14