net.cscott.jutil
public abstract class CollectionFactory<V> extends Object
Note that since some types of Collections have implicit constraints (such as Sets, which cannot contain more than one of the same element), code which uses the classes produced by CollectionFactorys 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.4 2006-10-30 19:58: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. |
initialCapacity
as a hint to use for the capacity
for the produced Collection.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.