jueves, 2 de enero de 2014

Sets y SortedSets

La interface Set sirve para acceder a una colección sin elementos repetidos. La colección puede estar o no ordenada (con un orden natural o definido por el usuario, se entiende). La interface Set no declara ningún método adicional a los de Collection. Como un Set no admite elementos repetidos es importante saber cuándo dos objetos son considerados iguales (por ejemplo, el usuario puede o no desear que las palabras Mesa y mesa sean consideradas iguales). Para ello se dispone de los métodos equalsf) y hashcode(). que el usuario puede redefinir si lo desea. Utilizando los métodos de Collection. los Sets permiten realizar operaciones algebraicas de unión, intersección y diferencia. 
Por ejemplo. sl.containsAU(s2) permite saber si s2 está contenido en si: sl.addAll(s2) permite convertir si en la unión de los dos conjuntos: sl.retainAll(s2) permite convertir si en la intersección de si y s2: finalmente. sl.retnoveAll(s2) convierte si en la diferencia entre si y s2. La interface SortedSet extiende la interface Set y añade los siguientes métodos:

Compiled from SortedSet.java
public interface java.útil.SortedSet extends java.útil.Set
{
public abstract java.útil.Comparator comparator();
public abstract java.lang.Object first();
public abstract java.útil.SortedSet headSet(java.lang.Object);
public abstract java.lang.Object last();
public abstract java.útil.SortedSet subSet(java.lang.Object, java.lang.Object);
public abstract java.útil.SortedSet tailSet(java.lang.Object);
}

que están orientados a trabajar con el "orden". El método comparatorf) permite obtener el objeto pasado al constructor para establecer el orden. Si se ha utilizado el orden natural definido por la interface Comparable. este método devuelve nuil. Los métodos first() y lastf) devuelven el primer y último elemento del conjunto. Los métodos headSetQ. subSetQ y tailSetf) sirven para obtener sub- conjuntos al principio, en medio y al final del conjunto original (los dos primeros no incluyen el límite superior especificado).
Existes dos implementociones de conjuntos: la clase HashSet implemento la interface Set, mientras que la clase TreeSet implemento SortedSet. La primera está basada en una hash table y la segunda en un TreeMap. Los elementos de un HashSet no mantienen el orden natural, ni el orden de introducción. Los elementos de un TreeSet mantienen el orden natural o el especificado por la interface Comparator. Ambas clases definen constructores que admiten como argumento un objeto Collection. lo cual permite convertir un HashSet en un TreeSet y viceversa.

No hay comentarios:

Publicar un comentario