Package org.jibx.util
Class LazyList
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList
-
- org.jibx.util.LazyList
-
- All Implemented Interfaces:
java.lang.Iterable,java.util.Collection,java.util.List
public class LazyList extends java.util.AbstractListList implementation with lazy array construction and modification tracking. The lazy array construction is a minor optimization, to save the added overhead of a backing array for lists which are frequently empty. The modification tracking feature supports filtered list construction with result caching.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.IteratorEMPTY_ITERATORSingleton iterator for empty collection.static LazyListEMPTY_LISTUnmodifiable empty list instance.private java.lang.Object[]m_arrayBacking array (lazy instantiation,nullif not used).private intm_limitMaximum number of items allowed before resizing.private intm_sizeNumber of items currently present in list.
-
Constructor Summary
Constructors Constructor Description LazyList()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, java.lang.Object element)voidcompact()Compact the list, removing anynullvalues.java.lang.Objectget(int index)intgetModCount()Get modify counter.java.util.Iteratoriterator()private voidmakeSpace(int count)Make sure space is available for adding to the list.java.lang.Objectremove(int index)voidremove(int from, int to)Remove range of values.protected voidremoveRange(int from, int to)java.lang.Objectset(int index, java.lang.Object element)intsize()-
Methods inherited from class java.util.AbstractList
add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
-
-
-
Field Detail
-
EMPTY_ITERATOR
public static final java.util.Iterator EMPTY_ITERATOR
Singleton iterator for empty collection.
-
EMPTY_LIST
public static final LazyList EMPTY_LIST
Unmodifiable empty list instance.
-
m_size
private int m_size
Number of items currently present in list.
-
m_limit
private int m_limit
Maximum number of items allowed before resizing.
-
m_array
private java.lang.Object[] m_array
Backing array (lazy instantiation,nullif not used).
-
-
Method Detail
-
makeSpace
private void makeSpace(int count)
Make sure space is available for adding to the list. This grows the size of the backing array, if necessary.- Parameters:
count-
-
get
public java.lang.Object get(int index)
- Specified by:
getin interfacejava.util.List- Specified by:
getin classjava.util.AbstractList
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection- Specified by:
sizein interfacejava.util.List- Specified by:
sizein classjava.util.AbstractCollection
-
add
public void add(int index, java.lang.Object element)- Specified by:
addin interfacejava.util.List- Overrides:
addin classjava.util.AbstractList
-
iterator
public java.util.Iterator iterator()
- Specified by:
iteratorin interfacejava.util.Collection- Specified by:
iteratorin interfacejava.lang.Iterable- Specified by:
iteratorin interfacejava.util.List- Overrides:
iteratorin classjava.util.AbstractList
-
remove
public java.lang.Object remove(int index)
- Specified by:
removein interfacejava.util.List- Overrides:
removein classjava.util.AbstractList
-
set
public java.lang.Object set(int index, java.lang.Object element)- Specified by:
setin interfacejava.util.List- Overrides:
setin classjava.util.AbstractList
-
removeRange
protected void removeRange(int from, int to)- Overrides:
removeRangein classjava.util.AbstractList
-
getModCount
public int getModCount()
Get modify counter. This supports tracking changes to determine when cached filters need to be updated.- Returns:
- count
-
remove
public void remove(int from, int to)Remove range of values. This is just a public version of the protected base class methodremoveRange(int, int)- Parameters:
from-to-
-
compact
public void compact()
Compact the list, removing anynullvalues.
-
-