com.github.andrewoma.dexx.collection
Class ConsList<E>

java.lang.Object
  extended by com.github.andrewoma.dexx.collection.internal.base.AbstractTraversable<E>
      extended by com.github.andrewoma.dexx.collection.internal.base.AbstractIterable<E>
          extended by com.github.andrewoma.dexx.collection.internal.base.AbstractList<E>
              extended by com.github.andrewoma.dexx.collection.internal.base.AbstractLinkedList<E>
                  extended by com.github.andrewoma.dexx.collection.ConsList<E>
All Implemented Interfaces:
LinkedList<E>, List<E>, Traversable<E>, Iterable<E>

public abstract class ConsList<E>
extends AbstractLinkedList<E>

ConsList is a functional LinkedList implementation that constructs a list by prepending an element to another list.

WARNING: Appending to a ConsList results in copying the entire list - always use a Builder when appending. Likewise, operations like set(int, Object) will result in copying portions of the list.

If there is any doubt as to the access patterns for using a List, use a Vector instead.


Constructor Summary
ConsList()
           
 
Method Summary
abstract  ConsList<E> append(E elem)
          Returns a list with the specified element appended to the bottom of the list.
abstract  ConsList<E> drop(int number)
          Returns a list containing all elements in this list, excluding the first number of elements.
static
<E> ConsList<E>
empty()
           
static
<E> BuilderFactory<E,ConsList<E>>
factory()
           
 Iterator<E> iterator()
           
 ConsList<E> prepend(E elem)
          Returns a list with the specified element prepended to the top of the list.
abstract  ConsList<E> range(int from, boolean fromInclusive, int to, boolean toInclusive)
          Returns a list containing a contiguous range of elements from this list.
abstract  ConsList<E> set(int i, E elem)
          Returns a list with the element set to the value specified at the index (zero-based).
abstract  ConsList<E> tail()
          Returns a list containing all elements in the list, excluding the first element.
abstract  ConsList<E> take(int number)
          Returns a list containing the first number of elements from this list.
 
Methods inherited from class com.github.andrewoma.dexx.collection.internal.base.AbstractList
asList, equals, hashCode, indexOf, lastIndexOf
 
Methods inherited from class com.github.andrewoma.dexx.collection.internal.base.AbstractIterable
forEach
 
Methods inherited from class com.github.andrewoma.dexx.collection.internal.base.AbstractTraversable
isEmpty, makeString, makeString, size, to, toArray, toArray, toIndexedList, toSet, toSortedSet, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.github.andrewoma.dexx.collection.List
asList, first, get, indexOf, last, lastIndexOf
 
Methods inherited from interface com.github.andrewoma.dexx.collection.Traversable
forEach, isEmpty, makeString, makeString, size, to, toArray, toArray, toIndexedList, toSet, toSortedSet
 

Constructor Detail

ConsList

public ConsList()
Method Detail

factory

@NotNull
public static <E> BuilderFactory<E,ConsList<E>> factory()

empty

public static <E> ConsList<E> empty()

prepend

@NotNull
public ConsList<E> prepend(E elem)
Description copied from interface: List
Returns a list with the specified element prepended to the top of the list.


append

@NotNull
public abstract ConsList<E> append(E elem)
Description copied from interface: List
Returns a list with the specified element appended to the bottom of the list.


iterator

@NotNull
public Iterator<E> iterator()

range

@NotNull
public abstract ConsList<E> range(int from,
                                          boolean fromInclusive,
                                          int to,
                                          boolean toInclusive)
Description copied from interface: List
Returns a list containing a contiguous range of elements from this list.

Parameters:
from - starting index for the range (zero-based)
fromInclusive - if true, the element at the from index will be included
to - end index for the range (zero-based)
toInclusive - if true, the element at the to index will be included

tail

@NotNull
public abstract ConsList<E> tail()
Description copied from interface: List
Returns a list containing all elements in the list, excluding the first element. An empty list is returned if the list is empty.


take

@NotNull
public abstract ConsList<E> take(int number)
Description copied from interface: List
Returns a list containing the first number of elements from this list.


drop

@NotNull
public abstract ConsList<E> drop(int number)
Description copied from interface: List
Returns a list containing all elements in this list, excluding the first number of elements.


set

@NotNull
public abstract ConsList<E> set(int i,
                                        E elem)
Description copied from interface: List
Returns a list with the element set to the value specified at the index (zero-based).



Copyright © 2014. All Rights Reserved.