Collections Data Structure Java

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;
  }
}