import java.util.LinkedHashSet;
import java.util.Set;
/**
* Note: This code is based on -
* http://java.sun.com/docs/books/tutorial/collections/interfaces/set.html
*
* Using LinkedHashSet, even though slightly slower than HashSet, in order to
* ensure order is always respected (i.e. if called with TreeSet or
* LinkedHashSet implementations).
*
* @author Ravi Mohan
* @author Ciaran O'Reilly
*/
public class SetOps {
/**
*
* @param
* @param s1
* @param s2
* @return the union of s1 and s2. (The union of two sets is the set
* containing all of the elements contained in either set.)
*/
public static Set union(Set s1, Set s2) {
Set union = new LinkedHashSet(s1);
union.addAll(s2);
return union;
}
/**
*
* @param
* @param s1
* @param s2
* @return the intersection of s1 and s2. (The intersection of two sets is
* the set containing only the elements common to both sets.)
*/
public static Set intersection(Set s1, Set s2) {
Set intersection = new LinkedHashSet(s1);
intersection.retainAll(s2);
return intersection;
}
/**
*
* @param
* @param s1
* @param s2
* @return the (asymmetric) set difference of s1 and s2. (For example, the
* set difference of s1 minus s2 is the set containing all of the
* elements found in s1 but not in s2.)
*/
public static Set difference(Set s1, Set s2) {
Set difference = new LinkedHashSet(s1);
difference.removeAll(s2);
return difference;
}
}