net.cscott.jutil
public abstract class ListFactory<V> extends CollectionFactory<V>
Note also that the current limitations on parametric types in
Java mean that we can't easily type this class as
ListFactory<L extends List<V>,V>
,
as ListFactory<LinkedList<V>,V>
is not
a subtype of ListFactory<List<V>,V>
,
even though java.util.LinkedList is a subtype of List.
Version: $Id: ListFactory.java,v 1.6 2006-10-30 19:58:06 cananian Exp $
Constructor Summary | |
---|---|
ListFactory() Creates a ListFactory. |
Method Summary | |
---|---|
static <E> List<E> | concatenate(List<List<E>> lists) Creates and returns an unmodifiable List view of
the list made from connecting lists together in
order.
|
List<V> | makeCollection() |
List<V> | makeCollection(int initCapacity) |
List<V> | makeCollection(Collection<? extends V> c) |
List<V> | makeList() Generates a new, mutable, empty List. |
List<V> | makeList(int initialCapacity) Generates a new, mutable, empty List, using
initialCapacity as a hint to use for the capacity
for the produced List. |
abstract List<V> | makeList(Collection<? extends V> c) Generates a new mutable List, using the elements
of c as a template for its initial contents. |
static <E> List<E> | singleton(E o) Creates and returns an immutable List of one element.
|
lists
together in
order.
lists
is a
List of Lists.
let l0 = (List) lists.get(0) l1 = (List) lists.get(1) ... ln = (List) lists.get(n) where n is lists.size()-1 returns a list view [ l0.get(0) , l0.get(1), ... , l0.get(l0.size()-1), l1.get(0) , l1.get(1), ... , l1.get(l1.size()-1), ... ln.get(0) , ln.get(1), ... , ln.get(ln.size()-1) ]Note that not only changes to the elements of
lists
are reflected in the returned
List, but even changes to lists
itself (adding or removing lists) are also reflected.initialCapacity
as a hint to use for the capacity
for the produced List.c
as a template for its initial contents.Deprecated: Use java.util.Collections#singletonList(java.lang.Object) Collections.singletonList
instead.