public interface Set {
  // Basic Operations
  int size();
  boolean isEmpty();
  boolean contains(Object element);
  boolean add(Object element);    // Optional
  boolean remove(Object element); // Optional
  Iterator iterator();
  
  // Bulk Operations
  boolean containsAll(Collection c);
  boolean addAll(Collection c);    // Optional
  boolean removeAll(Collection c); // Optional
  boolean retainAll(Collection c); // Optional
  void clear();                    // Optional        
  
  // Array Operations
  Object[] toArray();
  Object[] toArray(Object a[]);
}

