Your SlideShare is downloading. ×
0
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Unidad 6. colecciones
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Unidad 6. colecciones

200

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
200
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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áticasCOLECCIONES. Colecciones personalizadas Clase personalizada heredando de AbstractList 14

×