public class SnapshotArray<T> extends Array<T>
begin()
between indexes 0 and Array.size
at the time begin was called
will not be modified until end()
is called. If modification of the SnapshotArray occurs between begin/end, the backing
array is copied prior to the modification, ensuring that the backing array that was returned by begin()
is unaffected.
To avoid allocation, an attempt is made to reuse any extra array created as a result of this copy on subsequent copies.
It is suggested iteration be done in this specific way:
SnapshotArray array = new SnapshotArray(); // ... Object[] items = array.begin(); for (int i = 0, n = array.size; i < n; i++) { Object item = items[i]; // ... } array.end();
Array.ArrayIterable<T>, Array.ArrayIterator<T>
Constructor and Description |
---|
SnapshotArray() |
SnapshotArray(Array array) |
SnapshotArray(boolean ordered,
int capacity) |
SnapshotArray(boolean ordered,
int capacity,
Class arrayType) |
SnapshotArray(boolean ordered,
T[] array,
int startIndex,
int count) |
SnapshotArray(Class arrayType) |
SnapshotArray(int capacity) |
SnapshotArray(T[] array) |
Modifier and Type | Method and Description |
---|---|
T[] |
begin()
Returns the backing array, which is guaranteed to not be modified before
end() . |
void |
clear() |
void |
end()
Releases the guarantee that the array returned by
begin() won't be modified. |
void |
insert(int index,
T value) |
T |
pop()
Removes and returns the last item.
|
boolean |
removeAll(Array<? extends T> array,
boolean identity)
Removes from this array all of elements contained in the specified array.
|
T |
removeIndex(int index)
Removes and returns the item at the specified index.
|
void |
removeRange(int start,
int end)
Removes the items between the specified indices, inclusive.
|
boolean |
removeValue(T value,
boolean identity)
Removes the first instance of the specified value in the array.
|
void |
reverse() |
void |
set(int index,
T value) |
void |
shuffle() |
void |
sort()
Sorts this array.
|
void |
sort(Comparator<? super T> comparator)
Sorts the array.
|
void |
swap(int first,
int second) |
void |
truncate(int newSize)
Reduces the size of the array to the specified size.
|
static <T> SnapshotArray<T> |
with(T... array) |
public SnapshotArray()
public SnapshotArray(Array array)
public SnapshotArray(boolean ordered, int capacity, Class arrayType)
public SnapshotArray(boolean ordered, int capacity)
public SnapshotArray(boolean ordered, T[] array, int startIndex, int count)
public SnapshotArray(Class arrayType)
public SnapshotArray(int capacity)
public SnapshotArray(T[] array)
public T[] begin()
end()
.public void end()
begin()
won't be modified.public boolean removeValue(T value, boolean identity)
Array
removeValue
in class Array<T>
identity
- If true, == comparison will be used. If false, .equals() comparison will be used.public T removeIndex(int index)
Array
removeIndex
in class Array<T>
public void removeRange(int start, int end)
Array
removeRange
in class Array<T>
public boolean removeAll(Array<? extends T> array, boolean identity)
Array
public void sort()
Array
Comparable
. This method is not thread safe (uses
Sort.instance()
).public void sort(Comparator<? super T> comparator)
Array
Sort.instance()
).public void truncate(int newSize)
Array
public static <T> SnapshotArray<T> with(T... array)
SnapshotArray(Object[])
Copyright © 2014. All rights reserved.