Unidad6-Colecciones Key
Unidad6-Colecciones Key
Unidad6-Colecciones Key
Programación
Orientada a Objetos
Unidad 6 - COLECCIONES
Contenido
6.1.- Framework Collection
6.2.- Listas
6.3.- Conjuntos
6.4.- Mapas
6.5.- Uso de colecciones y ejemplos
Objetivos
6.1 Explicar las diferentes políticas que gobiernan las
colecciones en el lenguaje propuesto para la correcta
elección de estas.
6.2. Desarrollar programas que utilicen clases del
marco de trabajo de colecciones para la resolución de
problemas complejos
6.3. Demostrar el uso de iteradores y otras operaciones
en tipos de datos agregados para el entendimiento de
algoritmos
Java Collection Framework
• Librería de clases contenedoras de Java que
sirven para almacenar colecciones de
objetos, como listas, conjuntos, mapas, …
• Las clases se encuentran en el paquete
estándar java.util
Java Collection Framework
Jerarquía del Framework
Interfaz Collection<T>
• Define las operaciones comunes a todas las
colecciones de Java.
• Los tipos básicos de colecciones son (subtipos
de Collection ) :
•
• El orden natural.
• El orden alternativo proporcionado como
parámetro Comparator<T> en el constructor de la
clase que implemente esta interfaz.
SortedSet<T> - métodos
TreeSet<T>
• Implementación de conjuntos ordenados
basada en árboles binarios balanceados.
• Para su funcionamiento es necesario definir
un orden
• Las operaciones de búsqueda y modificación
son más lentas en TreeSet que en HashSet
TreeSet<T>
Un árbol es un tipo
de datos que simula
un árbol real
TreeSet<T>
• No hay elementos duplicados y hay orden de
los elementos en orden ascendente
• Implementa la clase
NavigableSet que
extiende de
SortedSet
TreeSet<T> - Constructores
• TreeSet(); // Orden natural
• TreeSet(Comparator o); // Orden alternativo
• TreeSet(Collection c); // Copia y Orden
natural
• TreeSet(SortedSet s); // Copia y Mismo orden
que s
TreeSet<T> - Ejemplo
TreeSet<Integer>h = new TreeSet<Integer>(); h.add(20); h.add(6); h.add(84);
h.add(9); h.add(8); System.out.println(h);
Tabla hash?
HashSet<T>
• No hay elementos duplicados y no hay orden
de los elementos
• Extiende la clase
AbstractSet e
implementa Set
HashSet<T> - Constructores
• Sin argumentos: HashSet()
• Con una colección como parámetro:
HashSet(Collection c)
• Se puede indicar la capacidad y el factor de
carga de la tabla: HashSet(int initialCapacity,
float loadFactor)
HashSet<T> - Métodos
1. add(Object e)
2. clear()
3. clone()
4. contains(Object o)
5. isEmpty()
6. iterator()
7. remove(Object o)
8. size()
HashSet<T> - Ejemplo
HashSet vs TreeSet
HashSet vs TreeSet
Interfaz Map<K,V>
• Un mapa no es una colección, sin embargo
contiene distintas colecciones:
•
• El orden natural.
• El orden alternativo proporcionado como
parámetro Comparator<T> en el constructor de la
clase que implemente esta interfaz.
SortedMap<K,V> - métodos
HashMap<K,V>
• Proporciona una implementación de la
interfaz Map basada en una tabla hash
• Constructores:
•
● isEmpty()
●
HashMap<K,V> - Ejemplo
TreeMap<K,V>
• proporciona una implementación de SortedMap:
Almacena los datos en un árbol binario equilibrado
ordenado.
• Búsqueda y modificación menos eficiente que en
HashMap.
• Constructores
TreeMap - Ejemplo
Orden de los objetos
• El orden utilizado por las colecciones
ordenadas (SortedSet, SortedMap) puede ser
el orden natural de los objetos (por defecto)
o el criterio de ordenación que se establece
en el constructor.
•