C.F.P.E. JUAN XXIII – ALCORCÓN                           Departamento de Desarrollo de Aplicaciones Informáticas          ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                   Departamento de Desarrollo de Aplicaciones Informáticas  ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                      Departamento de Desarrollo de Aplicaciones Informática...
C.F.P.E. JUAN XXIII – ALCORCÓN                                  Departamento de Desarrollo de Aplicaciones Informáticas   ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                       Departamento de Desarrollo de Aplicaciones Informátic...
C.F.P.E. JUAN XXIII – ALCORCÓN                                 Departamento de Desarrollo de Aplicaciones Informáticas    ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                              Departamento de Desarrollo de Aplicaciones Inf...
C.F.P.E. JUAN XXIII – ALCORCÓN                                            Departamento de Desarrollo de Aplicaciones Infor...
C.F.P.E. JUAN XXIII – ALCORCÓN                               Departamento de Desarrollo de Aplicaciones Informáticas      ...
C.F.P.E. JUAN XXIII – ALCORCÓN                              Departamento de Desarrollo de Aplicaciones Informáticas       ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                Departamento de Desarrollo de Aplicaciones Informáticas     ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                Departamento de Desarrollo de Aplicaciones Informáticas     ...
C.F.P.E. JUAN XXIII – ALCORCÓN                                   Departamento de Desarrollo de Aplicaciones Informáticas  ...
C.F.P.E. JUAN XXIII – ALCORCÓN             Departamento de Desarrollo de Aplicaciones InformáticasCOLECCIONES. Colecciones...
Upcoming SlideShare
Loading in …5
×

Unidad 6. colecciones

302 views
228 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
302
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Unidad 6. colecciones

  1. 1. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones Informáticas COLECCIONES1. Definición y ventajas2. Interfaces de Colección predefinidos • Collection • List • Set • Map3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. C.F.P.E. JUAN XXIII – ALCORCÓN Departamento de Desarrollo de Aplicaciones InformáticasCOLECCIONES. Colecciones personalizadas Clase personalizada heredando de AbstractList 14

×