structure5
Class SetVector<E>

java.lang.Object
  extended by structure5.AbstractStructure<E>
      extended by structure5.AbstractSet<E>
          extended by structure5.SetVector<E>
All Implemented Interfaces:
Iterable<E>, Set<E>, Structure<E>

public class SetVector<E>
extends AbstractSet<E>

Implementation of a set of elements using a vector as the underlying storage mechanism. As with the mathematical object, the elements of the set are not duplicated. No order is implied or enforced in this structure, but simple set operations such as intersection, union, difference, and subset are provided.

Example Usage: Given a list of students who completed a computer science thesis in the 2001-2002 academic year at Williams College and a list of graduating computer science majors who are continuing on to graduate school, we could determine which thesis students are planning to attend graduate school as follows:

 public static void main(String[] argv){
        //thesis students in the class of '02
        String[] thesis = new String[]{"Doug", "Evan", "Feng"};
        
        //students continuing on to grad school
        String[] grad = new String[]{"Doug", "Feng", "Lida"};

        //instantiate our sets
        Set thesisSet = new SetVector(), 
            gradSet = new SetVector();
                
        //build sets up
        for(int i = 0; i < thesis.length; i++) thesisSet.add(thesis[i]);
        for(int i = 0; i < grad.length; i++) gradSet.add(grad[i]);
        
        //calculate the intersection of the two sets
        thesisSet.retainAll(gradSet);
        System.out.println(thesisSet);
 }
 


Constructor Summary
SetVector()
          Construct a new set.
SetVector(Structure<E> other)
          Construct a new set from another structure.
 
Method Summary
 void add(E e)
          Add an element to set, if not already present.
 void addAll(Structure<E> other)
          Compute the union of this set with other.
 void clear()
          Remove all the elements from the set.
 Object clone()
          Returns a shallow clone of this set.
 boolean contains(E e)
          Returns true if value is an element of the set.
 boolean containsAll(Structure<E> other)
          Determine if this set is a subset of other.
 boolean isEmpty()
          Determine if the set is empty.
 Iterator<E> iterator()
          Construct an traversal to traverse the elements of the set.
static void main(String[] argv)
           
 E remove(E e)
          Remove an element from the set.
 void removeAll(Structure<E> other)
          Compute the difference between two sets.
 void retainAll(Structure<E> other)
          Compute the intersection of this set and other.
 int size()
          Determine the number of elements in the set.
 String toString()
          Construct a string representation of the set.
 
Methods inherited from class structure5.AbstractStructure
elements, hashCode, values
 
Methods inherited from class java.lang.Object
equals, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface structure5.Structure
elements, values
 

Constructor Detail

SetVector

public SetVector()
Construct a new set.


SetVector

public SetVector(Structure<E> other)
Construct a new set from another structure.

Method Detail

clear

public void clear()
Remove all the elements from the set.


isEmpty

public boolean isEmpty()
Determine if the set is empty.

Specified by:
isEmpty in interface Structure<E>
Overrides:
isEmpty in class AbstractStructure<E>
Returns:
True iff there are no elements in set.

add

public void add(E e)
Add an element to set, if not already present.

Parameters:
e - The new value to be added to set.

remove

public E remove(E e)
Remove an element from the set.

Parameters:
e - The element of the set to be removed.
Returns:
The value actually removed.

contains

public boolean contains(E e)
Returns true if value is an element of the set.

Specified by:
contains in interface Structure<E>
Overrides:
contains in class AbstractStructure<E>
Parameters:
e - The element sought in set.
Returns:
True iff the element is in the set.

containsAll

public boolean containsAll(Structure<E> other)
Determine if this set is a subset of other.

Specified by:
containsAll in interface Set<E>
Overrides:
containsAll in class AbstractSet<E>
Parameters:
other - The potential superset.

clone

public Object clone()
Returns a shallow clone of this set.

Overrides:
clone in class Object
Returns:
A new set with same values.

addAll

public void addAll(Structure<E> other)
Compute the union of this set with other.

Specified by:
addAll in interface Set<E>
Overrides:
addAll in class AbstractSet<E>
Parameters:
other - The set to be unioned with this.

retainAll

public void retainAll(Structure<E> other)
Compute the intersection of this set and other. Members of result are in both this and other.

Specified by:
retainAll in interface Set<E>
Overrides:
retainAll in class AbstractSet<E>
Parameters:
other - The other set to be intersected with this.

removeAll

public void removeAll(Structure<E> other)
Compute the difference between two sets. Values of the result are members of this, but not other.

Specified by:
removeAll in interface Set<E>
Overrides:
removeAll in class AbstractSet<E>
Parameters:
other - The set whose values are to be eliminated from this.

iterator

public Iterator<E> iterator()
Construct an traversal to traverse the elements of the set. Elements will not appear in any particular order.

Returns:
An traversal for inspecting members of the set.
See Also:
AbstractIterator, Iterator, Enumeration, Structure.elements()

size

public int size()
Determine the number of elements in the set.

Returns:
The number of elements in the set.

toString

public String toString()
Construct a string representation of the set.

Overrides:
toString in class Object
Returns:
A string representing the set.

main

public static void main(String[] argv)