This class implements
Set using an internal hashtable. It supports all
optional Set and Collection
methods and allows any type of object or null to
be a member of the set. Because HashSet is based
on a hashtable, the basic add( ), remove(
), and contains( ) methods are all quite
efficient. HashSet makes no guarantee about the
order in which the set elements are enumerated by the
Iterator returned by iterator(
). The methods of HashSet are not
synchronized. If you are using it in a
multithreaded environment, you must explicitly synchronize all code
that modifies the set or obtain a synchronized wrapper for it by
calling Collections.synchronizedSet( ).
If you know in advance approximately how many mappings a
HashSet will contain, you can improve efficiency
by specifying initialCapacity when you
call the HashSet( ) constructor. The
initialCapacity argument times the
loadFactor argument should be greater than
the number of mappings the HashSet will contain. A
good value for loadFactor is 0.75; this is
also the default value. See Set and
Collection for details on the methods of
HashSet. See also TReeSet and
HashMap.

public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable {
// Public Constructors
public HashSet( );
public HashSet(Collection<? extends E> c);
public HashSet(int initialCapacity);
public HashSet(int initialCapacity, float loadFactor);
// Methods Implementing Set
public boolean add(E o);
public void clear( );
public boolean contains(Object o);
public boolean isEmpty( ); default:true
public Iterator<E> iterator( );
public boolean remove(Object o);
public int size( );
// Public Methods Overriding Object
public Object clone( );
}