Part (a) package cop3530; public interface Set { boolean isEmpty( ); boolean contains( Object obj ); int size( ); void makeEmpty( ); boolean add( Object obj ); } Part (b) package cop3530; import java.util.Comparator; public class SortedArraySet implements Set { private int theSize; private Object [ ] items; private Comparator cmp; public SortedArraySet( ) { this( new DefaultComparator( ) ); } private static class DefaultComparator implements Comparator { public int compare( Object lhs, Object rhs ) { return ((Comparable)lhs).compareTo( rhs ); } } public boolean contains( Object obj ) { int pos = 0; while( pos < size( ) && cmp.compare( obj, items[ pos ] ) < 0 ) pos++; return pos != size( ) && cmp.compare( obj, items[ pos ] ) == 0; } ... }