Class SubListProcessor<E>
- All Implemented Interfaces:
Iterable<E>
,CapacityCarrying
,ConsolidatableCollection
,ExtendedBag<E>
,ExtendedCollection<E>
,ExtendedList<E>
,ExtendedSequence<E>
,OptimizableCollection
,ReleasingCollection<E>
,Sized
,Truncateable
,Sortable<E>
,XDecreasingList<E>
,XDecreasingSequence<E>
,XGettingBag<E>
,XGettingCollection<E>
,XGettingList<E>
,XGettingSequence<E>
,XIndexIterable<E>
,XIterable<E>
,XJoinable<E>
,XOrderingSequence<E>
,XProcessingBag<E>
,XProcessingCollection<E>
,XProcessingList<E>
,XProcessingSequence<E>
,XRemovingBag<E>
,XRemovingCollection<E>
,XRemovingList<E>
,XRemovingSequence<E>
,XReplacingBag<E>
,XReplacingCollection<E>
,XSettingList<E>
,XSettingSequence<E>
,XSortableSequence<E>
,Processable<E>
,Clearable
,Copyable
public class SubListProcessor<E> extends SubListView<E> implements XDecreasingList<E>
-
Nested Class Summary
Nested classes/interfaces inherited from interface one.microstream.collections.interfaces.ExtendedCollection
ExtendedCollection.Creator<E,C extends ExtendedCollection<E>>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XDecreasingList
XDecreasingList.Creator<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XGettingCollection
XGettingCollection.Creator<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XGettingList
XGettingList.Factory<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XGettingSequence
XGettingSequence.Factory<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XIterable
XIterable.Executor<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XProcessingList
XProcessingList.Factory<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XProcessingSequence
XProcessingSequence.Factory<E>
Nested classes/interfaces inherited from interface one.microstream.collections.types.XReplacingBag
XReplacingBag.Factory<E>
-
Constructor Summary
Constructors Constructor Description SubListProcessor(XProcessingList<E> list, long fromIndex, long toIndex)
-
Method Summary
Modifier and Type Method Description void
clear()
Clears all elements from the collection while leaving the capacity as it is.long
consolidate()
Consolidates the internal storage of this collection by discarding all elements of the internal storage that have become obsolete or otherwise unneeded anymore.SubListProcessor<E>
copy()
Creates a true copy of this list which references the same elements in the same order as this list does at the time the method is called.E
fetch()
XDecreasingList<E>
fill(long offset, long length, E element)
Fills all slots from the offset to the offset+length with the given element, regardless of whether or not a slot isnull
.<C extends Consumer<? super E>>
CmoveSelection(C target, long... indices)
<C extends Consumer<? super E>>
CmoveTo(C target, Predicate<? super E> predicate)
long
nullRemove()
one.microstream.collections.SubListProcessor.OldSubListProcessor<E>
old()
long
optimize()
Optimizes internal memory usage by rebuilding the storage to only occupy as much memory as needed to store the currently contained elements in terms of the collection's current memory usage configuration (e.g.E
pick()
E
pinch()
E
pop()
<P extends Consumer<? super E>>
Pprocess(P procedure)
SubListProcessor<E>
range(long fromIndex, long toIndex)
long
remove(E element)
long
removeAll(XGettingCollection<? extends E> samples)
E
removeAt(long index)
long
removeBy(Predicate<? super E> predicate)
long
removeDuplicates()
long
removeDuplicates(Equalator<? super E> equalator)
boolean
removeOne(E element)
SubListProcessor<E>
removeRange(long startIndex, long length)
long
removeSelection(long[] indices)
long
replace(E element, E replacement)
long
replace(Predicate<? super E> predicate, E substitute)
long
replaceAll(XGettingCollection<? extends E> elements, E replacement)
boolean
replaceOne(E element, E replacement)
Replaces the first element that is equal to the given element with the replacement and then returns true.boolean
replaceOne(Predicate<? super E> predicate, E substitute)
long
retainAll(XGettingCollection<? extends E> samples)
Removing all elements except the ones contained in the given elements-collection.SubListProcessor<E>
retainRange(long startIndex, long length)
Removing all elements but the ones from the offset (basically start index) to the offset+length (end index).E
retrieve(E element)
E
retrieveBy(Predicate<? super E> predicate)
XDecreasingList<E>
reverse()
Reverses the order of its own elements and returns itself.boolean
set(long index, E element)
XDecreasingList<E>
set(long index, E[] elements, int offset, int length)
XDecreasingList<E>
set(long index, XGettingSequence<? extends E> elements, long offset, long length)
XDecreasingList<E>
setAll(long index, E... elements)
void
setFirst(E element)
E
setGet(long index, E element)
void
setLast(E element)
XSortableSequence<E>
shiftBy(long sourceIndex, long distance)
Moves the element from the sourceIndex in the sequence to a higher index position.
All other elements are possibly moved to create the empty slot for the shifting element.XSortableSequence<E>
shiftBy(long sourceIndex, long distance, long length)
Moves multiple elements from the sourceIndex in the sequence to a higher index position.
All other elements are possibly moved to create the empty slot for the shifting elements.XSortableSequence<E>
shiftTo(long sourceIndex, long targetIndex)
Moves the element from the sourceIndex in the sequence to the targetIndex.
All other elements are possibly moved to create the empty slot for the shifting element.XSortableSequence<E>
shiftTo(long sourceIndex, long targetIndex, long length)
Moves multiple elements from the sourceIndex in the sequence to the targetIndex.
All other elements are possibly moved to create the empty slot for the shifting element.XDecreasingList<E>
sort(Comparator<? super E> comparator)
Sorts this collection according to the given comparator and returns itself.long
substitute(Function<? super E,? extends E> mapper)
long
substitute(Predicate<? super E> predicate, Function<E,E> mapper)
XDecreasingList<E>
swap(long indexA, long indexB)
XDecreasingList<E>
swap(long indexA, long indexB, long length)
SubListProcessor<E>
toReversed()
Creates a newXGettingSequence
with the reversed order of elements.void
truncate()
Clears (and reinitializes if needed) this collection in the fastest possible way, i.e.SubListView<E>
view(long fromIndex, long toIndex)
Creates a sub-view of this collection and returns it.Methods inherited from class one.microstream.collections.SubListView
applies, at, contains, containsAll, containsId, containsSearched, copySelection, copyTo, count, countBy, distinct, distinct, equality, equals, equalsContent, except, filterTo, first, get, getEndIndex, hasVolatileElements, immure, indexBy, indexOf, intersect, isEmpty, isFull, isSorted, iterate, iterateIndexed, iterator, join, last, lastIndexBy, lastIndexOf, listIterator, listIterator, max, maximumCapacity, maxIndex, min, minIndex, nullAllowed, nullContained, peek, poll, remainingCapacity, scan, search, seek, shiftIndices, size, toArray, toArray, union, view
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface one.microstream.collections.interfaces.CapacityCarrying
isFull, maximumCapacity, remainingCapacity
Methods inherited from interface one.microstream.collections.interfaces.ExtendedCollection
nullAllowed
Methods inherited from interface one.microstream.collections.types.XGettingCollection
applies, contains, containsAll, containsId, containsSearched, copyTo, count, countBy, distinct, distinct, equality, equals, equals, equalsContent, except, filterTo, hashCode, hasVolatileElements, intersect, intSize, iterator, join, max, min, nullContained, search, seek, size, toArray, toArray, union
Methods inherited from interface one.microstream.collections.types.XGettingList
immure, listIterator, listIterator, view
Methods inherited from interface one.microstream.collections.types.XGettingSequence
at, copySelection, first, get, hasIndex, indexBy, indexOf, isSorted, last, lastIndexBy, lastIndexOf, maxIndex, minIndex, peek, poll, scan
-
Constructor Details
-
Method Details
-
clear
public final void clear()Description copied from interface:XRemovingCollection
Clears all elements from the collection while leaving the capacity as it is.- Specified by:
clear
in interfaceClearable
- Specified by:
clear
in interfaceXRemovingCollection<E>
-
process
- Specified by:
process
in interfaceProcessable<E>
-
removeDuplicates
- Specified by:
removeDuplicates
in interfaceXProcessingCollection<E>
-
remove
- Specified by:
remove
in interfaceXRemovingCollection<E>
-
removeAll
- Specified by:
removeAll
in interfaceXRemovingCollection<E>
-
removeDuplicates
public final long removeDuplicates()- Specified by:
removeDuplicates
in interfaceXRemovingCollection<E>
-
retrieve
- Specified by:
retrieve
in interfaceXProcessingCollection<E>
-
retrieveBy
- Specified by:
retrieveBy
in interfaceXProcessingCollection<E>
-
removeOne
- Specified by:
removeOne
in interfaceXRemovingCollection<E>
-
retainAll
Description copied from interface:XRemovingCollection
Removing all elements except the ones contained in the given elements-collection.Basically intersect this collection with the given collection and only keeping the resulting elements.
- Specified by:
retainAll
in interfaceXRemovingCollection<E>
- Parameters:
samples
- to retain- Returns:
- Amount of deleted elements
-
removeBy
- Specified by:
removeBy
in interfaceXProcessingCollection<E>
-
truncate
public final void truncate()Description copied from interface:XRemovingCollection
Clears (and reinitializes if needed) this collection in the fastest possible way, i.e. by allocating a new and empty internal storage of default capacity. The collection will be empty after calling this method.- Specified by:
truncate
in interfaceTruncateable
- Specified by:
truncate
in interfaceXRemovingCollection<E>
-
range
- Specified by:
range
in interfaceXDecreasingList<E>
- Specified by:
range
in interfaceXDecreasingSequence<E>
- Specified by:
range
in interfaceXGettingList<E>
- Specified by:
range
in interfaceXGettingSequence<E>
- Specified by:
range
in interfaceXSettingList<E>
- Specified by:
range
in interfaceXSettingSequence<E>
- Overrides:
range
in classSubListView<E>
-
consolidate
public final long consolidate()Description copied from interface:ConsolidatableCollection
Consolidates the internal storage of this collection by discarding all elements of the internal storage that have become obsolete or otherwise unneeded anymore. (e.g.WeakReference
entries whose reference has been cleared).- Specified by:
consolidate
in interfaceConsolidatableCollection
- Specified by:
consolidate
in interfaceXRemovingCollection<E>
- Returns:
- the number of discarded entries.
-
moveTo
- Specified by:
moveTo
in interfaceXProcessingCollection<E>
-
optimize
public final long optimize()Description copied from interface:XRemovingCollection
Optimizes internal memory usage by rebuilding the storage to only occupy as much memory as needed to store the currently contained elements in terms of the collection's current memory usage configuration (e.g. hash density).If this is not possible or not needed in the concreate implementation, this method does nothing.
Note that this method can consume a considerable amount of time depending on the implementation and should only be called intentionally and accurately when reducing occupied memory is needed.
- Specified by:
optimize
in interfaceOptimizableCollection
- Specified by:
optimize
in interfaceXRemovingCollection<E>
- Returns:
- the amount of elements that can be added before the internal storage has to be adjusted.
-
moveSelection
- Specified by:
moveSelection
in interfaceXProcessingSequence<E>
-
removeAt
- Specified by:
removeAt
in interfaceXProcessingSequence<E>
- Throws:
UnsupportedOperationException
-
fetch
- Specified by:
fetch
in interfaceXProcessingCollection<E>
-
pop
- Specified by:
pop
in interfaceXProcessingSequence<E>
-
pinch
- Specified by:
pinch
in interfaceXProcessingCollection<E>
-
pick
- Specified by:
pick
in interfaceXProcessingSequence<E>
-
removeRange
- Specified by:
removeRange
in interfaceXRemovingSequence<E>
-
retainRange
Description copied from interface:XRemovingSequence
Removing all elements but the ones from the offset (basically start index) to the offset+length (end index).- Specified by:
retainRange
in interfaceXRemovingSequence<E>
- Parameters:
startIndex
- is the index of the first element to retainlength
- is the amount of elements to retain- Returns:
- this
-
removeSelection
public final long removeSelection(long[] indices)- Specified by:
removeSelection
in interfaceXRemovingSequence<E>
-
toReversed
Description copied from interface:XGettingSequence
Creates a newXGettingSequence
with the reversed order of elements.This method creates a new collection and does not change the existing collection.
- Specified by:
toReversed
in interfaceXDecreasingList<E>
- Specified by:
toReversed
in interfaceXDecreasingSequence<E>
- Specified by:
toReversed
in interfaceXGettingList<E>
- Specified by:
toReversed
in interfaceXGettingSequence<E>
- Specified by:
toReversed
in interfaceXProcessingList<E>
- Specified by:
toReversed
in interfaceXProcessingSequence<E>
- Specified by:
toReversed
in interfaceXSettingList<E>
- Specified by:
toReversed
in interfaceXSettingSequence<E>
- Specified by:
toReversed
in interfaceXSortableSequence<E>
- Overrides:
toReversed
in classSubListView<E>
- Returns:
- New copy of the collection
-
copy
Description copied from interface:XGettingSequence
Creates a true copy of this list which references the same elements in the same order as this list does at the time the method is called. The elements themselves are NOT copied (no deep copying).
The type of the returned list is the same as of this list if possible (i.e.: a SubList can not meaningful return a true copy that references its elements but still is a SubList)- Specified by:
copy
in interfaceCopyable
- Specified by:
copy
in interfaceXDecreasingList<E>
- Specified by:
copy
in interfaceXDecreasingSequence<E>
- Specified by:
copy
in interfaceXGettingBag<E>
- Specified by:
copy
in interfaceXGettingCollection<E>
- Specified by:
copy
in interfaceXGettingList<E>
- Specified by:
copy
in interfaceXGettingSequence<E>
- Specified by:
copy
in interfaceXProcessingBag<E>
- Specified by:
copy
in interfaceXProcessingList<E>
- Specified by:
copy
in interfaceXReplacingBag<E>
- Specified by:
copy
in interfaceXSettingList<E>
- Specified by:
copy
in interfaceXSettingSequence<E>
- Specified by:
copy
in interfaceXSortableSequence<E>
- Overrides:
copy
in classSubListView<E>
- Returns:
- a copy of this list
-
nullRemove
public final long nullRemove()- Specified by:
nullRemove
in interfaceXRemovingCollection<E>
-
view
Description copied from interface:XGettingSequence
Creates a sub-view of this collection and returns it. It is a read-only collection, which wraps around this collection and only allows read methods.
The view is limited to a range from the lowIndex to the highIndex.A view is different from immutable collection (
XGettingCollection.immure()
) in the way, that changes in this collection are still affecting the view. The immutable collection on the other hand has no reference to this collection and changes therefore do not affect the immutable collection.- Specified by:
view
in interfaceXGettingList<E>
- Specified by:
view
in interfaceXGettingSequence<E>
- Specified by:
view
in interfaceXProcessingSequence<E>
- Overrides:
view
in classSubListView<E>
- Parameters:
fromIndex
- defines lower boundary for the view of the collection.toIndex
- defines higher boundary for the view of the collection.- Returns:
- new read-only collection to view a range of elements in this collection
-
old
- Specified by:
old
in interfaceXGettingCollection<E>
- Specified by:
old
in interfaceXGettingList<E>
- Overrides:
old
in classSubListView<E>
-
replaceOne
Description copied from interface:XReplacingBag
Replaces the first element that is equal to the given element with the replacement and then returns true.- Specified by:
replaceOne
in interfaceXReplacingBag<E>
- Parameters:
element
- to replacereplacement
- for the found element- Returns:
true
if element is found,false
if not
-
replace
- Specified by:
replace
in interfaceXReplacingBag<E>
-
replaceAll
- Specified by:
replaceAll
in interfaceXReplacingBag<E>
-
replaceOne
- Specified by:
replaceOne
in interfaceXReplacingBag<E>
-
replace
- Specified by:
replace
in interfaceXReplacingBag<E>
-
substitute
- Specified by:
substitute
in interfaceXReplacingCollection<E>
-
substitute
- Specified by:
substitute
in interfaceXReplacingBag<E>
-
set
public final boolean set(long index, E element) throws IndexOutOfBoundsException, ArrayIndexOutOfBoundsException- Specified by:
set
in interfaceXSettingSequence<E>
- Throws:
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException
-
setGet
- Specified by:
setGet
in interfaceXSettingSequence<E>
-
setFirst
- Specified by:
setFirst
in interfaceXSettingSequence<E>
-
setLast
- Specified by:
setLast
in interfaceXSettingSequence<E>
-
shiftTo
Description copied from interface:XOrderingSequence
Moves the element from the sourceIndex in the sequence to the targetIndex.
All other elements are possibly moved to create the empty slot for the shifting element.Does not expand or shrink the capacity of the sequence.
Throws a
IndexExceededException
if sourceIndex or targetIndex are greater than the size of the sequence.- Specified by:
shiftTo
in interfaceXOrderingSequence<E>
- Specified by:
shiftTo
in interfaceXSortableSequence<E>
- Parameters:
sourceIndex
- points to the source element; Index of the source elementtargetIndex
- points to the target element; Index of the target element- Returns:
- this
-
shiftTo
Description copied from interface:XOrderingSequence
Moves multiple elements from the sourceIndex in the sequence to the targetIndex.
All other elements are possibly moved to create the empty slot for the shifting element.Does not expand or shrink the capacity of the sequence.
Throws a
IndexExceededException
if sourceIndex or targetIndex exceed the size of the sequence.- Specified by:
shiftTo
in interfaceXOrderingSequence<E>
- Specified by:
shiftTo
in interfaceXSortableSequence<E>
- Parameters:
sourceIndex
- points to the source element; Index of the source elementtargetIndex
- points to the target element; Index of the target elementlength
- Amount of moved elements.- Returns:
- self
-
shiftBy
Description copied from interface:XOrderingSequence
Moves the element from the sourceIndex in the sequence to a higher index position.
All other elements are possibly moved to create the empty slot for the shifting element. ("to the right")Does not expand or shrink the capacity of the sequence.
Throws a
IndexExceededException
if sourceIndex or targetIndex (sourceIndex+distance) exceed the size of the sequence.- Specified by:
shiftBy
in interfaceXOrderingSequence<E>
- Specified by:
shiftBy
in interfaceXSortableSequence<E>
- Parameters:
sourceIndex
- points to the source element; Index of the source elementdistance
- of how far the element should be moved. Example: 1 moves the element from position 21 to position 22- Returns:
- self
-
shiftBy
Description copied from interface:XOrderingSequence
Moves multiple elements from the sourceIndex in the sequence to a higher index position.
All other elements are possibly moved to create the empty slot for the shifting elements. ("to the right")Does not expand or shrink the capacity of the sequence.
Throws a
IndexExceededException
if sourceIndex or targetIndex (sourceIndex+distance+length) exceed the size of the sequence.- Specified by:
shiftBy
in interfaceXOrderingSequence<E>
- Specified by:
shiftBy
in interfaceXSortableSequence<E>
- Parameters:
sourceIndex
- points to the source element; Index of the source elementdistance
- of how far the element should be moved. Example: 1 moves the element from position 21 to position 22length
- Amount of moved elements.- Returns:
- self
-
setAll
- Specified by:
setAll
in interfaceXDecreasingList<E>
- Specified by:
setAll
in interfaceXDecreasingSequence<E>
- Specified by:
setAll
in interfaceXSettingList<E>
- Specified by:
setAll
in interfaceXSettingSequence<E>
-
set
- Specified by:
set
in interfaceXDecreasingList<E>
- Specified by:
set
in interfaceXDecreasingSequence<E>
- Specified by:
set
in interfaceXSettingList<E>
- Specified by:
set
in interfaceXSettingSequence<E>
-
set
public final XDecreasingList<E> set(long index, XGettingSequence<? extends E> elements, long offset, long length)- Specified by:
set
in interfaceXDecreasingList<E>
- Specified by:
set
in interfaceXDecreasingSequence<E>
- Specified by:
set
in interfaceXSettingList<E>
- Specified by:
set
in interfaceXSettingSequence<E>
-
swap
- Specified by:
swap
in interfaceXDecreasingList<E>
- Specified by:
swap
in interfaceXDecreasingSequence<E>
- Specified by:
swap
in interfaceXOrderingSequence<E>
- Specified by:
swap
in interfaceXSettingList<E>
- Specified by:
swap
in interfaceXSettingSequence<E>
- Specified by:
swap
in interfaceXSortableSequence<E>
-
swap
- Specified by:
swap
in interfaceXDecreasingList<E>
- Specified by:
swap
in interfaceXDecreasingSequence<E>
- Specified by:
swap
in interfaceXOrderingSequence<E>
- Specified by:
swap
in interfaceXSettingList<E>
- Specified by:
swap
in interfaceXSettingSequence<E>
- Specified by:
swap
in interfaceXSortableSequence<E>
-
reverse
Description copied from interface:XSortableSequence
Reverses the order of its own elements and returns itself.Unlike the
XSortableSequence.toReversed()
method, this method does not create a new collection, but changes the order of its own elements.- Specified by:
reverse
in interfaceXDecreasingList<E>
- Specified by:
reverse
in interfaceXDecreasingSequence<E>
- Specified by:
reverse
in interfaceXOrderingSequence<E>
- Specified by:
reverse
in interfaceXSettingList<E>
- Specified by:
reverse
in interfaceXSettingSequence<E>
- Specified by:
reverse
in interfaceXSortableSequence<E>
- Returns:
- this
-
fill
Description copied from interface:XSettingList
Fills all slots from the offset to the offset+length with the given element, regardless of whether or not a slot isnull
.- Specified by:
fill
in interfaceXDecreasingList<E>
- Specified by:
fill
in interfaceXSettingList<E>
- Parameters:
offset
- from the start of the collection (start index)length
- of how many slots should be filledelement
- to use for filling of slots- Returns:
- this
-
sort
Description copied from interface:Sortable
Sorts this collection according to the given comparator and returns itself.- Specified by:
sort
in interfaceSortable<E>
- Specified by:
sort
in interfaceXDecreasingList<E>
- Specified by:
sort
in interfaceXDecreasingSequence<E>
- Specified by:
sort
in interfaceXSettingList<E>
- Specified by:
sort
in interfaceXSettingSequence<E>
- Specified by:
sort
in interfaceXSortableSequence<E>
- Parameters:
comparator
- to sort this collection- Returns:
- this
-