Coleccion Es 2

Programación Orientada a Objeto Contenido: 9. Colecciones ◦ 9.1. Definición ◦ 9.2. Uso de colecciones ◦ 9.3. Ejemplos

Views 90 Downloads 0 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Programación Orientada a Objeto

Contenido: 9. Colecciones ◦ 9.1. Definición

◦ 9.2. Uso de colecciones ◦ 9.3. Ejemplos

Colecciones •Colecciones son objetos que referencian a un grupo de objetos. •A diferencia de los arreglos, las colecciones solamente mantienen referencias a objetos de tipo Object. •Cualquier objeto puede ser almacenado en una colección. •Las colecciones pueden: –Cambiar de tamaño dinámicamente. –Proveer ordenamiento. –insertar y borrar elementos.

Collections Framework

Collections Framework

■ Lists Lista de Cosas/Objetos (classes that implement List). ■ Sets Cosas/Objetos unicos (classes that implement Set).

■ Maps Cosas/Objetos con un ID unico (classes that implement Map). ■ Queues Cosas ordenadas por el orden en el que van a ser procesadas.

Tabla de Clases de Collections

Interface List La interface List extiende de Collection En las listas se maneja el concepto de indice (index), en comparacion con las otras interfaces. ◦ get(int index), indexOf(Object o), add(int index, Object obj) Todas las implementaciones de List estan ordenadas por la posicion del indice. Ya sea cuando manualmente se determina el indice al que va el objeto , o sino el elemento es añadido al final.

List Implementations Vector (No usado en la actualidad)

ArrayList ◦ Podemos decir que un arrayList es un array que puede crecer indefinidamente. ◦ Es rapido para iterar y accede. ◦ Es una collection ordenada por indice.

LinkedList ◦ Linked List esta ordenada por posicion del indice, como el Array List except que los elementos estan doblemente linkeados el uno al otro ( previo nodo, y siguiente nodo) ◦ Provee formas de anadir y remover tanto al principio como al final, lo que la hace mas facil de usar para la implementacion de colas y pilas. ◦ Sin embargo, la iteracion es mas lenta. Es una Buena opcion cuando se necesita rapida insercion y borrado

Ejemplo Array List – Linked List

Iterar una lista

Iteradores La interface ListIterator permite iterar a través de las listas.

Los métodos más comunes del al interfase Iterator son:

Iteradores

Interface Set La interface Set se preocupa de la unicidad. NO PERMITE DUPLICADOS! Recordemos que el metodo .equals determina si dos objetos son iguales. En tal caso solo uno puede ser incluido en el Set.

Implementaciones de Set: HashSet Trabajan basandose en un hashcode (Podemos pensar en el hashcode como un ID por el cual se localizara y se accesara al objeto. No garantiza el orden, y mantiene un tiempo de rendimiento constante en sus operaciones

Implementaciones de Set: LinkedHashSet Mantiene una lista linkeada de entradas en el set, en el orden que fueron insertadas.

Su diferencia mas significativa con un LinkedList es que el LinkedHashSet no admitira duplicados.

Cual seria el resultado del programa anterior, si lo cambiaramos por un LinkedHashSet?

Interface Map La interface Map, le importa solo los identificadores unicos. Mapean un ID unico a un valor especifico. Donde ambos el key y el valor son objetos.

Métodos Importantes Interface Map •Put(): Inserta un elemento en el mapa •Get(): Obtiene un elemento en el map, utilizando el método equals() para verificar la igualdad •keySet(): Este método es usado para obtener un Set de las claves contenidas en el map. •values(): Este método devuelve una colección de los valores contenidos en el map. •entrySet(): Este método es usado para obtener un set de clave y valor, al iterar un Map.Entry de clave y valor

HashMap El hashmap, utiliza un hash table para almacenar un key y un valor de manera desordenada. getKey(): Returns the key for this map entry. getValue(): Returns the value for this map entry. put(K k, V v) Puts an entry in the invoking map, overwriting any previous value associated with the key. The key and value are k and v, respectively. Returns null if the key did not already exist. Otherwise, the previous value linked to the key is returned.

LinkedHashMap Mantiene una lista linkeada de entradas en el mapa en el orden en que fueron insertadas.

Iterando un HashMap ▪ Si se quiere obtener solo las claves del map:

▪ Si se quiere obtener valores

▪Si se quiere obtener claves y valores

Sobrescritura del Metodo equals •El método equals es usado en las colecciones de tipo List, Set, y también Map para determinar si un objeto ya está incluido en la colección

Sobrescritura del Metodo hashcode •Metodo que retorna un valor de tipo entero (int)

•Siempre que se sobrescribe el equals() se debe sobrescribir el hashcode() •Para generar un hashcode podemos usar el metodo hash() de la clase Objects. (Desde Java 7)

Sorting Collections ArrayList no posee ningun metodo sort() Sin embargo Collections, posee el metodo sort()

Interface Comparable La interface Comparable es usada por el metodo Collections.sort() , para ordenar Listas.

La clase String implementa la interface Comparable Para implementar Comparable, una clase debe implementar un solo metodo “compareTo()”

El metodo sort() usa compareTo para determiner como la Lista o Array deberia ser ordenado.

Interface Comparable

TreeSet  Crea una colección que usa un árbol para almacenamiento.

 Los objetos son almacenados en orden ascendente.  El tiempo de acceso es bastante rápido.

TreeSet de Clases Personalizadas Se puede crear un TreeSet de clases personalizadas, el orden estará dado por la implementación de la interface Comparable

En caso de no implementarse dara el error java.Lang. ClassCastException.

TreeMap  Almacena los elementos en una estructura de árbol

 Garantiza que los elementos estarán ordenados, en orden ascendente con respecto a su clave

Java FX – Colecciones – Control ComboBox