Package com.badlogic.gdx.utils
Class DelayedRemovalArray<T>
- java.lang.Object
-
- com.badlogic.gdx.utils.Array<T>
-
- com.badlogic.gdx.utils.DelayedRemovalArray<T>
-
- All Implemented Interfaces:
java.lang.Iterable<T>
public class DelayedRemovalArray<T> extends Array<T>
An array that queues removal during iteration until the iteration has completed. Queues any removals done afterbegin()is called to occur onceend()is called. This can allow code out of your control to remove items without affecting iteration. Between begin and end, most mutator methods will throw IllegalStateException. OnlyremoveIndex(int),removeValue(Object, boolean),removeRange(int, int),clear(), and add methods are allowed.Note that DelayedRemovalArray is not for thread safety, only for removal during iteration.
Code using this class must not rely on items being removed immediately. Consider using
SnapshotArrayif this is a problem.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.badlogic.gdx.utils.Array
Array.ArrayIterable<T>, Array.ArrayIterator<T>
-
-
Constructor Summary
Constructors Constructor Description DelayedRemovalArray()DelayedRemovalArray(boolean ordered, int capacity)DelayedRemovalArray(boolean ordered, int capacity, java.lang.Class arrayType)DelayedRemovalArray(boolean ordered, T[] array, int startIndex, int count)DelayedRemovalArray(int capacity)DelayedRemovalArray(Array array)DelayedRemovalArray(java.lang.Class arrayType)DelayedRemovalArray(T[] array)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbegin()voidclear()voidend()voidinsert(int index, T value)voidinsertRange(int index, int count)Inserts the specified number of items at the specified index.Tpop()Removes and returns the last item.TremoveIndex(int index)Removes and returns the item at the specified index.voidremoveRange(int start, int end)Removes the items between the specified indices, inclusive.booleanremoveValue(T value, boolean identity)Removes the first instance of the specified value in the array.voidreverse()voidset(int index, T value)T[]setSize(int newSize)Sets the array size, leaving any values beyond the current size null.voidshuffle()voidsort()Sorts this array.voidsort(java.util.Comparator<? super T> comparator)Sorts the array.voidswap(int first, int second)voidtruncate(int newSize)Reduces the size of the array to the specified size.static <T> DelayedRemovalArray<T>with(T... array)-
Methods inherited from class com.badlogic.gdx.utils.Array
add, add, add, add, addAll, addAll, addAll, addAll, contains, containsAll, containsAny, ensureCapacity, equals, equalsIdentity, first, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, notEmpty, of, of, peek, random, removeAll, resize, select, selectRanked, selectRankedIndex, shrink, toArray, toArray, toString, toString
-
-
-
-
Constructor Detail
-
DelayedRemovalArray
public DelayedRemovalArray()
-
DelayedRemovalArray
public DelayedRemovalArray(Array array)
-
DelayedRemovalArray
public DelayedRemovalArray(boolean ordered, int capacity, java.lang.Class arrayType)
-
DelayedRemovalArray
public DelayedRemovalArray(boolean ordered, int capacity)
-
DelayedRemovalArray
public DelayedRemovalArray(boolean ordered, T[] array, int startIndex, int count)
-
DelayedRemovalArray
public DelayedRemovalArray(java.lang.Class arrayType)
-
DelayedRemovalArray
public DelayedRemovalArray(int capacity)
-
DelayedRemovalArray
public DelayedRemovalArray(T[] array)
-
-
Method Detail
-
begin
public void begin()
-
end
public void end()
-
removeValue
public boolean removeValue(T value, boolean identity)
Description copied from class:ArrayRemoves the first instance of the specified value in the array.- Overrides:
removeValuein classArray<T>- Parameters:
value- May be null.identity- If true, == comparison will be used. If false, .equals() comparison will be used.- Returns:
- true if value was found and removed, false otherwise
-
removeIndex
public T removeIndex(int index)
Description copied from class:ArrayRemoves and returns the item at the specified index.- Overrides:
removeIndexin classArray<T>
-
removeRange
public void removeRange(int start, int end)Description copied from class:ArrayRemoves the items between the specified indices, inclusive.- Overrides:
removeRangein classArray<T>
-
insertRange
public void insertRange(int index, int count)Description copied from class:ArrayInserts the specified number of items at the specified index. The new items will have values equal to the values at those indices before the insertion.- Overrides:
insertRangein classArray<T>
-
sort
public void sort()
Description copied from class:ArraySorts this array. The array elements must implementComparable. This method is not thread safe (usesSort.instance()).
-
sort
public void sort(java.util.Comparator<? super T> comparator)
Description copied from class:ArraySorts the array. This method is not thread safe (usesSort.instance()).
-
truncate
public void truncate(int newSize)
Description copied from class:ArrayReduces the size of the array to the specified size. If the array is already smaller than the specified size, no action is taken.
-
setSize
public T[] setSize(int newSize)
Description copied from class:ArraySets the array size, leaving any values beyond the current size null.- Overrides:
setSizein classArray<T>- Returns:
Array.items
-
with
public static <T> DelayedRemovalArray<T> with(T... array)
- See Also:
DelayedRemovalArray(Object[])
-
-