Question: How to change this set code from integer to Generic? public class IntegerSet { private int cardinality; private final int maxSize; private final int[] elements;

How to change this set code from integer to Generic?

public class IntegerSet {

private int cardinality; private final int maxSize; private final int[] elements;

/** * No arg constructor * * @param maxSize */ IntegerSet(int maxSize) { this.cardinality = 0; this.maxSize = maxSize; this.elements = new int[maxSize]; }

/** * * @param set to take the union with * @return the union of the two sets * @throws SetException */ public IntSet union(IntSet set) throws SetException { IntSet unionSet = new IntSet(this.maxSize + set.maxSize);

int marker1 = 0, marker2 = 0;

while (marker1 < this.cardinality && marker2 < set.cardinality) { if (elements[marker1] < set.elements[marker1]) { unionSet.insert(elements[marker1]); marker1++; } else if (elements[marker1] == set.elements[marker2]) { unionSet.insert(elements[marker1]); marker1++; marker2++; } else { unionSet.insert(set.elements[marker2]); marker2++; } }

for (; marker1 < cardinality; marker1++) { unionSet.insert(elements[marker1]); }

for (; marker2 < set.cardinality; marker2++) { unionSet.insert(set.elements[marker2]); }

return unionSet; }

/** * * @param set to take the intersection with * @return the intersection of the two sets * @throws SetException */ public IntSet intersection(IntSet set) throws SetException { IntSet intersectionSet = new IntSet(Math.min(this.cardinality, set.cardinality));

int marker1 = 0, marker2 = 0;

while (marker1 < this.cardinality || marker2 < set.cardinality) { if (this.elements[marker1] < set.elements[marker2]) { marker1++; } else if (this.elements[marker1] == set.elements[marker2]) { intersectionSet.insert(this.elements[marker1]); marker1++; marker2++; } else { marker2++; } }

return intersectionSet;

}

/** * * @param newElement to be inserted * @throws SetException */ public void insert(int newElement) throws SetException { if (cardinality >= maxSize) { throw new SetException("cannot insert..set full"); } else if (!contains(newElement)) { int marker = cardinality;

while (marker > 0 && newElement < elements[marker - 1]) { elements[marker] = elements[marker - 1]; --marker; } elements[marker] = newElement; cardinality++; } }

/** * * @param testElement to be checked * @return true if element exists */ public boolean contains(int testElement) { int marker;

for (marker = 0; marker < cardinality; marker++) { if (testElement == elements[marker]) { return true; } } return false; }

/** * Clear the set */ public void clear() { cardinality = 0; }

/** * * @return the cardinality of the set */ public int getCardinality() { return this.cardinality; }

/** * Print the content of the set */ public void print() { for (int marker = 0; marker < cardinality; marker++) { System.out.print(elements[marker] + " "); } System.out.println(); }

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!