ShuffleOrder
@UnstableApi
public interface ShuffleOrder
FakeShuffleOrder |
Fake |
ShuffleOrder.DefaultShuffleOrder |
The default |
ShuffleOrder.UnshuffledShuffleOrder |
A |
Shuffled order of indices.
The shuffle order must be immutable to ensure thread safety.
The order must be consistent when traversed both forwards and backwards.
Summary
Nested types |
|---|
public class ShuffleOrder.DefaultShuffleOrder implements ShuffleOrderThe default |
public final class ShuffleOrder.UnshuffledShuffleOrder implements ShuffleOrderA |
Public methods |
|
|---|---|
abstract ShuffleOrder |
Returns a copy of the shuffle order with all elements removed. |
abstract ShuffleOrder |
cloneAndInsert(int insertionIndex, int insertionCount)Returns a copy of the shuffle order with newly inserted elements. |
default ShuffleOrder |
cloneAndMove(int indexFrom, int indexToExclusive, int newIndexFrom)Returns a copy of the shuffle order to be used after a move. |
abstract ShuffleOrder |
cloneAndRemove(int indexFrom, int indexToExclusive)Returns a copy of the shuffle order with a range of elements removed. |
default ShuffleOrder |
cloneAndSet(int insertionCount, int startIndex)Returns a copy of the shuffle order with all elements replaced. |
abstract int |
Returns the first index in the shuffle order, or |
abstract int |
Returns the last index in the shuffle order, or |
abstract int |
Returns length of shuffle order. |
abstract int |
getNextIndex(int index)Returns the next index in the shuffle order. |
abstract int |
getPreviousIndex(int index)Returns the previous index in the shuffle order. |
Public methods
cloneAndClear
abstract ShuffleOrder cloneAndClear()
Returns a copy of the shuffle order with all elements removed.
cloneAndInsert
abstract ShuffleOrder cloneAndInsert(int insertionIndex, int insertionCount)
Returns a copy of the shuffle order with newly inserted elements.
| Parameters | |
|---|---|
int insertionIndex |
The index in the unshuffled order at which elements are inserted. |
int insertionCount |
The number of elements inserted at |
| Returns | |
|---|---|
ShuffleOrder |
A copy of this |
cloneAndMove
default ShuffleOrder cloneAndMove(int indexFrom, int indexToExclusive, int newIndexFrom)
Returns a copy of the shuffle order to be used after a move.
The default implementation is a no-op. Custom implementation can choose to re-shuffle when items are moved.
| Parameters | |
|---|---|
int indexFrom |
The starting index in the unshuffled order of the range to move, from before the move occurs. |
int indexToExclusive |
The smallest index (must be greater or equal to |
int newIndexFrom |
The starting index in the unshuffled order of the range to move, from after the move occurs. |
| Returns | |
|---|---|
ShuffleOrder |
A copy of this |
cloneAndRemove
abstract ShuffleOrder cloneAndRemove(int indexFrom, int indexToExclusive)
Returns a copy of the shuffle order with a range of elements removed.
| Parameters | |
|---|---|
int indexFrom |
The starting index in the unshuffled order of the range to remove. |
int indexToExclusive |
The smallest index (must be greater or equal to |
| Returns | |
|---|---|
ShuffleOrder |
A copy of this |
cloneAndSet
default ShuffleOrder cloneAndSet(int insertionCount, int startIndex)
Returns a copy of the shuffle order with all elements replaced.
The default implementation uses cloneAndClear and cloneAndInsert to replace all elements in the shuffle order. Custom implementations can override this method if the first element in the shuffled order should be set to the one whose index in the unshuffled order is startIndex.
| Parameters | |
|---|---|
int insertionCount |
The number of elements. |
int startIndex |
The index of the new element in the unshuffled order that should be the first in the shuffled order or |
| Returns | |
|---|---|
ShuffleOrder |
A copy of this |
getFirstIndex
abstract int getFirstIndex()
Returns the first index in the shuffle order, or INDEX_UNSET if the shuffle order is empty.
getLastIndex
abstract int getLastIndex()
Returns the last index in the shuffle order, or INDEX_UNSET if the shuffle order is empty.
getNextIndex
abstract int getNextIndex(int index)
Returns the next index in the shuffle order.
| Parameters | |
|---|---|
int index |
An index. |
| Returns | |
|---|---|
int |
The index after |
getPreviousIndex
abstract int getPreviousIndex(int index)
Returns the previous index in the shuffle order.
| Parameters | |
|---|---|
int index |
An index. |
| Returns | |
|---|---|
int |
The index before |