net.cscott.jutil
public abstract class CollectionFactory<V> extends Object
CollectionFactory
is a Collection
generator. Subclasses should implement constructions of specific
types of Collection
s.
Note that since some types of Collection
s have
implicit constraints (such as Set
s, which cannot
contain more than one of the same element), code which uses the
classes produced by CollectionFactory
s must take care
not to assume more than what is guaranteed by the
Collection
interface.
Note also that the current limitations on parametric types in
Java mean that we can't easily type this class as
CollectionFactory<C extends Collection<V>,V>
,
as CollectionFactory<Set<V>,V>
is not
a subtype of CollectionFactory<Collection<V>,V>
,
even though Set
is a subtype of Collection
.
Version: $Id: CollectionFactory.java,v 1.2 2004/01/13 20:47:05 cananian Exp $
Constructor Summary | |
---|---|
CollectionFactory() Creates a CollectionFactory . |
Method Summary | |
---|---|
Collection<V> | makeCollection() Generates a new, mutable, empty Collection . |
Collection<V> | makeCollection(int initialCapacity) Generates a new, mutable, empty Collection , using
initialCapacity as a hint to use for the capacity
for the produced Collection . |
abstract Collection<V> | makeCollection(Collection<? extends V> c) Generates a new, mutable Collection , using the
elements of c as a template for its initial
contents. |
CollectionFactory
.Collection
.Collection
, using
initialCapacity
as a hint to use for the capacity
for the produced Collection
.Collection
, using the
elements of c
as a template for its initial
contents. Note that the Collection
returned is
not a view of c
, but rather a snapshot;
changes to c
are not reflected in the returned
Collection
.