Write a program to implement a set class along with member f

Write a program to implement a \"set\" class along with member functions for union, intersection, difference, symmetric difference, and a test for subsets. Be sure to write a thorough test program.

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

 Write a program to implement a \
 Write a program to implement a \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site