public class ObjVector<E> extends Object implements ReadOnlyObjList<E>, Cloneable
Modifier and Type | Class and Description |
---|---|
static class |
ObjVector.MutatingSnapshot<E,T>
snapshot that can mutate element values, but therefore can't use block operations.
|
protected class |
ObjVector.NonNullIterator
iterator that only includes element values that are not null
|
protected class |
ObjVector.OVIterator
iterator that goes over all elements regardless of value (i.e.
|
static class |
ObjVector.Snapshot<E>
this is a block operation snapshot that stores chunks of original data with
not more than DEFAULT_MAX_GAP consecutive null elements.
|
Modifier and Type | Field and Description |
---|---|
protected Object[] |
data
the backing array.
|
static int |
defaultInitCap |
protected Growth |
growth
growth strategy.
|
protected int |
size
size as in a java.util.Vector.
|
Constructor and Description |
---|
ObjVector() |
ObjVector(F[] init) |
ObjVector(Growth initGrowth) |
ObjVector(Growth initGrowth,
int initCap) |
ObjVector(int initCap) |
ObjVector(ObjVector<F> from) |
Modifier and Type | Method and Description |
---|---|
void |
add(E x) |
<F extends E> |
addAll(Iterable<F> x) |
void |
addNulls(int length) |
<F extends E> |
append(ArrayList<F> x) |
<F extends E> |
append(F[] x) |
<F extends E> |
append(F[] x,
int pos,
int len) |
<F extends E> |
append(ObjArray<F> x) |
<F extends E> |
append(ObjVector<F> x) |
void |
clear() |
void |
clearAllSatisfying(Predicate<E> pred) |
ObjVector<E> |
clone() |
static <E> void |
copy(ObjVector<? extends E> src,
int srcPos,
E[] dst,
int dstPos,
int len) |
static <E> void |
copy(ObjVector<? extends E> src,
int srcPos,
ObjVector<E> dst,
int dstPos,
int len) |
int |
dumpTo(Object[] dst,
int pos) |
Iterable<E> |
elements() |
void |
ensureCapacity(int desiredCap) |
void |
ensureSize(int sz) |
E |
get(int idx) |
ObjVector.Snapshot<E> |
getSnapshot() |
ObjVector.Snapshot<E> |
getSnapshot(int maxGap)
create a snapshot that doesn't store more than maxGap consecutive null values
|
<T> ObjVector.MutatingSnapshot<E,T> |
getSnapshot(Transformer<E,T> transformer) |
Iterator<E> |
iterator() |
int |
length() |
int |
nextNull(int fromIndex) |
Iterator<E> |
nonNullIterator() |
void |
printOn(PrintStream ps) |
void |
process(Processor<E> processor) |
E |
remove(int i) |
int |
removeFrom(int fromIdx) |
int |
removeRange(int fromIdx,
int toIdx)
remove all non-null elements between 'fromIdx' (inclusive) and
'toIdx' (exclusive)
throw IndexOutOfBoundsException if index values are out of range
|
<T> void |
restore(ObjVector.MutatingSnapshot<E,T> snap,
Transformer<T,E> transformer) |
void |
restore(ObjVector.Snapshot<E> snap) |
void |
set(int idx,
E v) |
void |
setRange(int fromIndex,
int toIndex,
E val)
set range of values
|
void |
setSize(int sz) |
int |
size() |
void |
sort(Comparator<? super E> comp) |
void |
squeeze() |
<F> F[] |
toArray(F[] dst) |
ObjArray<E> |
toObjArray() |
public static final int defaultInitCap
protected int size
protected Object[] data
protected Growth growth
public ObjVector(Growth initGrowth, int initCap)
public ObjVector(Growth initGrowth)
public ObjVector(int initCap)
public ObjVector()
public ObjVector(F[] init)
public ObjVector(ObjVector<F> from)
public void add(E x)
public void addNulls(int length)
public <F extends E> void append(F[] x)
public <F extends E> void append(F[] x, int pos, int len)
public int nextNull(int fromIndex)
public E get(int idx)
get
in interface ReadOnlyObjList<E>
public void set(int idx, E v)
public void setRange(int fromIndex, int toIndex, E val)
fromIndex
- first index (inclusive)toIndex
- last index (exclusive)val
- value to setpublic <F> F[] toArray(F[] dst)
public int dumpTo(Object[] dst, int pos)
public void squeeze()
public void setSize(int sz)
public void clear()
public int size()
public int length()
length
in interface ReadOnlyObjList<E>
public void ensureSize(int sz)
public void ensureCapacity(int desiredCap)
public void sort(Comparator<? super E> comp)
public static <E> void copy(ObjVector<? extends E> src, int srcPos, ObjVector<E> dst, int dstPos, int len)
public static <E> void copy(ObjVector<? extends E> src, int srcPos, E[] dst, int dstPos, int len)
public int removeRange(int fromIdx, int toIdx)
public int removeFrom(int fromIdx)
public E remove(int i)
public ObjVector.Snapshot<E> getSnapshot()
public ObjVector.Snapshot<E> getSnapshot(int maxGap)
public void restore(ObjVector.Snapshot<E> snap)
public <T> ObjVector.MutatingSnapshot<E,T> getSnapshot(Transformer<E,T> transformer)
public <T> void restore(ObjVector.MutatingSnapshot<E,T> snap, Transformer<T,E> transformer)
public void printOn(PrintStream ps)