Interfaces Set y SortedSet Java se 6
Jorge Ospina Leon
Brayham Burgos Bedoya
Ludwin Buitrago Gonzalez
JERARQUIA Y ASOCIACIONES
La Interfaz Set
Es una colección que no permite elementos repetidos. La interfaz set contiene solo
métodos heredados de collection y aumenta la restricción de elementos
duplicados. Esta interfaz tiene un contrato con un comportamiento mas
especifico en operaciones con equals y hashCode,permitiendo a instancias de
esta interfaz ser comparadas significativamente a un si el tipo de
implementación difiere. Dos instancias de set son iguales si ellas contienen los
mismos elementos.
Java dispone de tres implementaciones generales de set:
•
HashSet
•
TreeSet
•
LinkedHashSet
HashSet
Almacena sus elementos en una tabla hash, es la implementación mas eficiente Garantiza un tiempo de ejecución constante para operaciones básicas [add(),
remove(), contains(), size()]
LinkedHashSet
Es implementada por una tabla Hash con lista enlazada a través de ella,
ordenando sus elementos en base a como han sido insertados. Tiene un costo
mas alto de rendimiento que un hashSet.
La Interface SortedSet
Similar a la interface Set. Se diferencia en queSortedSet permite que los elementos
dentro del conjunto de la colección estén ordenados totalmente, facilitando por tanto su
acceso en búsquedas y haciendo más rápida su consulta
Todos los elementos insertados en una colección que implemente a SortedSet deben a
su vez implementar la Interface Comparable lo cual da lugar a que dichos elementos
sean comparados entre sí.
Todas lasimplementaciones SortedSet deben proporcionar cuatro constructores
estándar;
1. Constructor sin argumentos que crea un conjunto vacío
2. Constructor con un único argumento de tipo Comparator el cual crea un conjunto
vacío ordenado de acuerdo al Comparator.
3. Constructor con un único argumento de tipo Collection, el cual crea un nuevo
conjunto ordenado con los elementos de su argumento
4. Constructorcon un único argumento de tipo SortedSet, similar a una asignación.
Como Lo Hace TreeSet
TreeSet
Guarda sus elementos en un árbol, ordenando sus elementos en base a sus
valores, y por lo tanto es mas lento que un hashSet.
Garantiza un coste de tiempo de ejecución logarítmico para operaciones básicas
[add(), remove(), contains()]
Se diferencia de HashSet en que sus elementos estánordenados. Otra diferencia
es la estructura de datos que sirve para almacenar datos, en un caso una tabla y
en el otro un arbol
OPERACIONES BÁSICAS
Las operaciones básicas mas utilizadas en la interfaz Set son:
•
Size( ) : Retorna el numero de elementos en el set, su cardinalidad.
•
isEmpty( ) : Verifica si el set esta vacío.
•
Add( Objeto o ) : Aumenta el elementoespecificado, si este no se encuentra
presente y retorna un booleano indicando si este fue o no insertado.
•
Remove( Objeto o ) : Elimina el elemento especificado del set si esta presente.
Retorna verdadero o falso si el elemento esta o no presente.
•
Iterator( ) : Retorna un Iterator sobre el set.
OPERACIONES ADICIONALES
Suponga que S1 y S2 son Sets y las operaciones sobre estos son:
•S1.containAll ( S2 ) : retorna true si S2 es una sub-colección de S1 ,es decir, si S1
contiene todos los elementos de S2.
•
S1.addAll( S2 ) : Transforma S1 en la unión de S1 y S2.
•
S1.retainAll( S2 ) : Transforma a S1 en la intersección de S1 y S2. La diferencia
entre S1 y S2.
Paso De HashSet A TreeSet
El tipo de implementación de
Set en el ejemplo anterior en
HashSet loque garantiza que
los
elementos
estén
ordenados en el Set. Si
deseamos
que
el
el
programa imprima en orden
alfabético solo cambiaríamos
el tipo de implementación de
HashSet a TreeSet.
HashSet Princípios Básicos
Una colección de tipo HashSet
no soporta elementos repetidos
Debe tenerse en cuenta que
esta implementada para
detectar repeticiones de
identidad o referencia...
Regístrate para leer el documento completo.