|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.millscript.commons.util.list.AbstractIList<V>
org.millscript.commons.util.list.ILinkedList<V>
public class ILinkedList<V>
This class provides an immutable List implementation which is
backed by singly linked list. We don't need the complexity of a doubly
linked list as our iterators do not allow reverse iteration.
| Nested Class Summary | |
|---|---|
static class |
ILinkedList.ISharedLinkedList<V>
This class implements a linked list which is backed by a shared slice of another linked list. |
static class |
ILinkedList.ISharedLinkedListIterator<V>
This class provides a map interator implementation which iterates over a shared poriton of the specified linked list. |
static class |
ILinkedList.LinkedListIterator<V>
This class provides a map interator implementation which iterates over this values in the specified linked list. |
| Nested classes/interfaces inherited from class org.millscript.commons.util.list.AbstractIList |
|---|
AbstractIList.ListMapletIterator<V>, AbstractIList.ListMapletList<V> |
| Constructor Summary | |
|---|---|
ILinkedList()
Constructs a new empty immutable linked list. |
|
ILinkedList(V[] objects)
Constructs a new immutable linked list with the objects in the given array, in the same order. |
|
ILinkedList(V[] objects,
int start,
int end)
Constructs a new immutable linked list with the objects in the given array, in the same order, starting and ending at the specified indices. |
|
| Method Summary | |
|---|---|
java.lang.Object |
clone()
|
protected V |
doGet(int pos)
Returns the value at the specified position(one based) in the list. |
protected IList<V> |
doSlice(int first,
int last,
boolean share)
Returns a list containing a slice of the elements in this list, starting at first(one based, inclusive) and continuing
last(one based, inclusive). |
int |
indexOf(V value)
Returns the index(one based) of the first occurance of the specified object in this list. |
ListIterator<V> |
iterator(boolean share)
Returns an iterator over the values in this list and their respective position. |
int |
size()
Returns the number of mappings defined in this map. |
| Methods inherited from class org.millscript.commons.util.list.AbstractIList |
|---|
allButFirst, allButLast, allFirst, allLast, contains, contains, contains, contains0, contains0, contains0, containsAll, containsKey, containsKey, containsKey0, containsKey0, containsSlice, containsSlice0, containsValue, decorate, equals, first, get, get, get0, get0, getDefault, hashCode, indexOf0, isEmtpy, keyList, last, mapletList, setDefault, setDefault, sharedMapletList, sharedValueList, slice, slice0, toArray, toArray, toString, valueList |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ILinkedList()
public ILinkedList(V[] objects)
objects - the backing object array with objects to populate the
list with
public ILinkedList(V[] objects,
int start,
int end)
objects - the backing object array with objects to populate the
list withstart - the index of the first element in the sliceend - the index of the last element in the slice. If end <
start, the new list will be empty| Method Detail |
|---|
public java.lang.Object clone()
throws java.lang.CloneNotSupportedException
clone in class java.lang.Objectjava.lang.CloneNotSupportedExceptionObject.clone()protected V doGet(int pos)
AbstractIListAbstractIList.get(int) method after the index
has been validated. Hence this method should generally not need to
perform any further validation.
doGet in class AbstractIList<V>pos - the index(one based) of the value to return
AbstractIList.doGet(int)
protected IList<V> doSlice(int first,
int last,
boolean share)
AbstractIListfirst(one based, inclusive) and continuing
last(one based, inclusive). This method is called by the
generic #slice(int, int) method after the indices have been
validated. Hence, this method assumes that the specified indices are
within the bounds of the list and that the first index is less than or
equal to the last index. The case where the first index is greater than
the last is handled elsewhere.
doSlice in class AbstractIList<V>first - the index(one based) of the first element in the slicelast - the index(one based) of the last element in the sliceshare - if true the specified object array will be
shared otherwise the array will be copied.
AbstractIList.doSlice(int, int, boolean)public int indexOf(V value)
IList
indexOf in interface IList<V>value - the value to find
IList.indexOf(java.lang.Object)public ListIterator<V> iterator(boolean share)
IList
iterator in interface IList<V>iterator in interface IMap<java.lang.Integer,V>share - if true this instances backing store should be
shared with the returned list, otherwise any backing store will be copied.
IMap.iterator(boolean)public int size()
IMap
size in interface IMap<java.lang.Integer,V>IMap.size()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||