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.lang.Object first();
public
abstract java.útil.SortedSet headSet(java.lang.Object);
public abstract java.lang.Object last();
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);
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