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.
Figure 16-25. java.util.HashSet<E>
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 ( );
}