Write a program to implement a set class along with member f
Solution
Set operations: union, intersection, difference, symmetric difference, is subset, is superset
import java.util.Set;
 import java.util.TreeSet;
//Class to do Set operations
 public class SetOperations {
   
 //Finding Union of two sets (A union B)
 public static <T> Set<T> union(Set<T> setA, Set<T> setB) {
     Set<T> tmp = new TreeSet<T>(setA);
     tmp.addAll(setB);
     return tmp;
 }
//Finding Intersection of two sets (A intersection B)
 public static <T> Set<T> intersection(Set<T> setA, Set<T> setB) {
     Set<T> tmp = new TreeSet<T>();
     for (T x : setA)
       if (setB.contains(x))
         tmp.add(x);
     return tmp;
 }
//Finding Difference of two sets (A - B)
 public static <T> Set<T> difference(Set<T> setA, Set<T> setB) {
     Set<T> tmp = new TreeSet<T>(setA);
     tmp.removeAll(setB);
     return tmp;
 }
 //Finding the Symmetric difference of two sets by finding (A union B) - (A intersection B)
 public static <T> Set<T> symDifference(Set<T> setA, Set<T> setB) {
     Set<T> tmpA;
     Set<T> tmpB;
    tmpA = union(setA, setB);
     tmpB = intersection(setA, setB);
     return difference(tmpA, tmpB);
 }
//Find whether this is a subset of A
 public static <T> boolean isSubset(Set<T> setA, Set<T> setB) {
     return setB.containsAll(setA);
 }
//Find whether this is a Super set of A
 public static <T> boolean isSuperset(Set<T> setA, Set<T> setB) {
     return setA.containsAll(setB);
 }
//Test Program main method
 public static void main(String args[]) {
    //Initialize two sets
     TreeSet<Character> set1 = new TreeSet<Character>();
     TreeSet<Character> set2 = new TreeSet<Character>();
    //Add the elements to Set1
     set1.add(\'A\');
     set1.add(\'B\');
     set1.add(\'C\');
     set1.add(\'D\');
   
 //Add the elements to Set2
     set2.add(\'C\');
     set2.add(\'D\');
     set2.add(\'E\');
     set2.add(\'F\');
    System.out.println(\"set1: \" + set1);
     System.out.println(\"set2: \" + set2);
    //Do the Set operations
     System.out.println(\"Union: \" + union(set1, set2));
     System.out.println(\"Intersection: \" + intersection(set1, set2));
     System.out.println(\"Difference (set1 - set2): \" + difference(set1, set2));
     System.out.println(\"Symmetric Difference: \" + symDifference(set1, set2));
    //Initialize a new set3
     TreeSet<Character> set3 = new TreeSet<Character>(set1);
    set3.remove(\'D\');
     System.out.println(\"set3: \" + set3);
   
     //Checking whether this is a subset or superset of any other set
    System.out.println(\"Is set1 a subset of set2? \" + isSubset(set1, set3));
     System.out.println(\"Is set1 a superset of set2? \" + isSuperset(set1, set3));
     System.out.println(\"Is set3 a subset of set1? \" + isSubset(set3, set1));
     System.out.println(\"Is set3 a superset of set1? \" + isSuperset(set3, set1));
}
 }
 Output :-
set1: [A, B, C, D]
 set2: [C, D, E, F]
 Union: [A, B, C, D, E, F]
 Intersection: [C, D]
 Difference (set1 - set2): [A, B]
 Symmetric Difference: [A, B, E, F]
 set3: [A, B, C]
 Is set1 a subset of set2? false
 Is set1 a superset of set2? true
 Is set3 a subset of set1? true
 Is set3 a superset of set1? false


