Package org.roaringbitmap
Class RunContainer
java.lang.Object
org.roaringbitmap.Container
org.roaringbitmap.RunContainer
- All Implemented Interfaces:
Externalizable
,Serializable
,Cloneable
,Iterable<Character>
,WordStorage<Container>
This container takes the form of runs of consecutive values (effectively, run-length encoding).
Adding and removing content from this container might make it wasteful so regular calls to
"runOptimize" might be warranted.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final boolean
(package private) int
private static final long
private char[]
Fields inherited from class org.roaringbitmap.Container
ContainerNames
-
Constructor Summary
ConstructorsModifierConstructorDescriptionCreate a container with default capacityRunContainer
(char[] array, int numRuns) Construct a new RunContainer backed by the provided array.RunContainer
(int capacity) Create an array container with specified capacityprivate
RunContainer
(int nbrruns, char[] valueslength) RunContainer
(int firstOfRun, int lastOfRun) Create an run container with a run of ones from firstOfRun to lastOfRun.protected
RunContainer
(ArrayContainer arr, int nbrRuns) protected
RunContainer
(BitmapContainer bc, int nbrRuns) Creates a new non-mappeable container from a mappeable one. -
Method Summary
Modifier and TypeMethodDescriptionadd
(char k) Add a short to the container.add
(int begin, int end) Return a new container with all shorts in [begin,end) added using an unsigned interpretation.Computes the bitwise AND of this container with another (intersection).Computes the bitwise AND of this container with another (intersection).and
(RunContainer x) Computes the bitwise AND of this container with another (intersection).int
int
int
Computes the bitwise ANDNOT of this container with another (difference).Computes the bitwise ANDNOT of this container with another (difference).Computes the bitwise ANDNOT of this container with another (difference).private void
appendValueLength
(int value, int index) private static int
branchyUnsignedInterleavedBinarySearch
(char[] array, int begin, int end, char k) private boolean
canPrependValueLength
(int value, int index) void
clear()
Empties the containerclone()
private void
closeValueLength
(int value, int index) boolean
contains
(char x) Checks whether the contain contains the provided valueboolean
contains
(int minimum, int supremum) Checks whether the container contains the entire rangeprotected boolean
contains
(ArrayContainer arrayContainer) protected boolean
contains
(BitmapContainer bitmapContainer) protected boolean
contains
(RunContainer runContainer) private Container
private void
copyToOffset
(int offset) private void
copyValuesLength
(char[] src, int srcIndex, char[] dst, int dstIndex, int length) private void
decrementLength
(int index) private void
decrementValue
(int index) void
deserialize
(DataInput in) Deserialize (recover) the container.(package private) void
ensureCapacity
(int minNbRuns) boolean
private boolean
equals
(ArrayContainer arrayContainer) private boolean
equals
(RunContainer rc) void
fillLeastSignificant16bits
(int[] x, int i, int mask) Fill the least significant 16 bits of the integer array, starting at index i, with the short values from this container.int
first()
Get the first integer held in the containerflip
(char x) Add a short to the container if it is not present, otherwise remove it.void
forAll
(int offset, RelativeRangeConsumer rrc) Consume presence information for all values in this container.void
forAllFrom
(char startValue, RelativeRangeConsumer rrc) Consume presence information for all values greater or equal to startValue in this container.void
forAllInRange
(char startValue, char endValue, RelativeRangeConsumer rrc) Consumer presence information for all values in the range [startValue, endValue) in this container.void
forAllUntil
(int offset, char endValue, RelativeRangeConsumer rrc) Consume presence information for all values smaller than endValue in this container.void
forEach
(char msb, IntConsumer ic) Iterate through the values of this container and pass them along to the IntConsumer, using msb as the 16 most significant bits.static RunContainer
full()
int
Size of the underlying arrayGets an iterator to visit the contents of the container in batchesint
Computes the distinct number of char values in the container.Iterator to visit the char values in the container in ascending order.Iterator to visit the short values in container and pre-compute rankschar
getLength
(int index) Gets the length of the run at the index.Iterator to visit the char values in the container in descending order.int
Computes an estimate of the memory usage of this container.char
getValue
(int index) Gets the value of the first element of the run at the index.int
hashCode()
private static int
hybridUnsignedInterleavedBinarySearch
(char[] array, int begin, int end, char k) iadd
(int begin, int end) Add all shorts in [begin,end) using an unsigned interpretation.Computes the in-place bitwise AND of this container with another (intersection).Computes the in-place bitwise AND of this container with another (intersection).iand
(RunContainer x) Computes the in-place bitwise AND of this container with another (intersection).Computes the in-place bitwise ANDNOT of this container with another (difference).Computes the in-place bitwise ANDNOT of this container with another (difference).Computes the in-place bitwise ANDNOT of this container with another (difference).(package private) Container
private Container
private void
private void
incrementLength
(int index) private void
incrementValue
(int index) private void
initValueLength
(int value, int index) inot
(int rangeStart, int rangeEnd) Computes the in-place bitwise NOT of this container (complement).boolean
intersects
(int minimum, int supremum) Checks if the container intersects with a rangeboolean
Returns true if the current container intersects the other container.boolean
Returns true if the current container intersects the other container.boolean
Returns true if the current container intersects the other container.Computes the in-place bitwise OR of this container with another (union).Computes the in-place bitwise OR of this container with another (union).ior
(RunContainer x) Computes the in-place bitwise OR of this container with another (union).iremove
(int begin, int end) Remove shorts in [begin,end) using an unsigned interpretation.boolean
isEmpty()
Checks whether the container is empty or not.boolean
isFull()
Checks whether the container is full or not.iterator()
Computes the in-place bitwise XOR of this container with another (symmetric difference).Computes the in-place bitwise XOR of this container with another (symmetric difference).ixor
(RunContainer x) Computes the in-place bitwise XOR of this container with another (symmetric difference).int
last()
Get the last integer held in the containerprivate RunContainer
protected Container
private Container
private Container
limit
(int maxcardinality) Create a new Container containing at most maxcardinality integers.private void
makeRoomAtIndex
(int index) private void
mergeValuesLength
(int begin, int end) int
nextAbsentValue
(char fromValue) Gets the first absent value greater than or equal to the lower bound.int
nextValue
(char fromValue) Gets the first value greater than or equal to the lower bound, or -1 if no such value exists.not
(int rangeStart, int rangeEnd) Computes the bitwise NOT of this container (complement).int
or
(ArrayContainer x) Computes the bitwise OR of this container with another (union).Computes the bitwise OR of this container with another (union).or
(RunContainer x) Computes the bitwise OR of this container with another (union).private void
prependValueLength
(int value, int index) int
previousAbsentValue
(char fromValue) Gets the last value less than or equal to the upper bound.int
previousValue
(char fromValue) Gets the last value less than or equal to the upper bound, or -1 if no such value exists.int
rank
(char lowbits) Rank returns the number of integers that are smaller or equal to x (Rank(infinity) would be GetCardinality()).void
private void
recoverRoomAtIndex
(int index) private void
recoverRoomsInRange
(int begin, int end) remove
(char x) Remove the char from this container.remove
(int begin, int end) Return a new container with all chars in [begin,end) remove using an unsigned interpretation.The output of a lazyOR or lazyIOR might be an invalid container, this should be called on it.Convert to Array or Bitmap container if the serialized form would be shorter.char
select
(int j) Return the jth valuevoid
serialize
(DataOutput out) Serialize the container.int
Report the number of bytes required to serialize this container.protected static int
serializedSizeInBytes
(int numberOfRuns) private void
setLength
(char[] valueslength, int index, char v) private void
setLength
(int index, char v) private void
setValue
(char[] valueslength, int index, char v) private void
setValue
(int index, char v) private int
skipAhead
(RunContainer skippingOn, int pos, int targetToExceed) private void
smartAppend
(char val) (package private) void
smartAppend
(char start, char length) private void
smartAppendExclusive
(char val) private void
smartAppendExclusive
(char start, char length) Convert the current container to a BitmapContainer, if a conversion is needed.private Container
(package private) Container
toBitmapOrArrayContainer
(int card) Convert the container to either a Bitmap or an Array Container, depending on the cardinality.Return the content of this container as a ShortBuffer.private Container
Convert to a mappeable container.toString()
void
trim()
If possible, recover wasted memory.private static int
unsignedInterleavedBinarySearch
(char[] array, int begin, int end, char k) private boolean
valueLengthContains
(int value, int index) void
writeArray
(DataOutput out) Write just the underlying array.void
writeArray
(ByteBuffer buffer) Write just the underlying array.void
Computes the bitwise XOR of this container with another (symmetric difference).Computes the bitwise XOR of this container with another (symmetric difference).xor
(RunContainer x) Computes the bitwise XOR of this container with another (symmetric difference).Methods inherited from class org.roaringbitmap.Container
and, andCardinality, andNot, assertNonEmpty, contains, getContainerName, iand, iandNot, intersects, ior, iorNot, ixor, lazyIOR, lazyOR, or, orNot, rangeOfOnes, xor, xorCardinality
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
DEFAULT_INIT_SIZE
private static final int DEFAULT_INIT_SIZE- See Also:
-
ENABLE_GALLOPING_AND
private static final boolean ENABLE_GALLOPING_AND- See Also:
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
valueslength
private char[] valueslength -
nbrruns
int nbrruns
-
-
Constructor Details
-
RunContainer
public RunContainer()Create a container with default capacity -
RunContainer
-
RunContainer
public RunContainer(int firstOfRun, int lastOfRun) Create an run container with a run of ones from firstOfRun to lastOfRun.- Parameters:
firstOfRun
- first indexlastOfRun
- last index (range is exclusive)
-
RunContainer
-
RunContainer
public RunContainer(int capacity) Create an array container with specified capacity- Parameters:
capacity
- The capacity of the container
-
RunContainer
private RunContainer(int nbrruns, char[] valueslength) -
RunContainer
Creates a new non-mappeable container from a mappeable one. This copies the data.- Parameters:
bc
- the original container
-
RunContainer
public RunContainer(char[] array, int numRuns) Construct a new RunContainer backed by the provided array. Note that if you modify the RunContainer a new array may be produced.- Parameters:
array
- array where the data is storednumRuns
- number of runs (each using 2 shorts in the buffer)
-
-
Method Details
-
branchyUnsignedInterleavedBinarySearch
private static int branchyUnsignedInterleavedBinarySearch(char[] array, int begin, int end, char k) -
hybridUnsignedInterleavedBinarySearch
private static int hybridUnsignedInterleavedBinarySearch(char[] array, int begin, int end, char k) -
serializedSizeInBytes
protected static int serializedSizeInBytes(int numberOfRuns) -
unsignedInterleavedBinarySearch
private static int unsignedInterleavedBinarySearch(char[] array, int begin, int end, char k) -
add
Description copied from class:Container
Return a new container with all shorts in [begin,end) added using an unsigned interpretation. -
add
Description copied from class:Container
Add a short to the container. May generate a new container.- Specified by:
add
in interfaceWordStorage<Container>
- Specified by:
add
in classContainer
- Parameters:
k
- short to be added- Returns:
- the new container
-
and
Description copied from class:Container
Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected. -
and
Description copied from class:Container
Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected. -
and
Description copied from class:Container
Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected. -
andCardinality
- Specified by:
andCardinality
in classContainer
-
andCardinality
- Specified by:
andCardinality
in classContainer
-
andCardinality
- Specified by:
andCardinality
in classContainer
-
andNot
Description copied from class:Container
Computes the bitwise ANDNOT of this container with another (difference). This container as well as the provided container are left unaffected. -
andNot
Description copied from class:Container
Computes the bitwise ANDNOT of this container with another (difference). This container as well as the provided container are left unaffected. -
andNot
Description copied from class:Container
Computes the bitwise ANDNOT of this container with another (difference). This container as well as the provided container are left unaffected. -
appendValueLength
private void appendValueLength(int value, int index) -
canPrependValueLength
private boolean canPrependValueLength(int value, int index) -
clear
public void clear()Description copied from class:Container
Empties the container -
clone
-
isEmpty
public boolean isEmpty()Description copied from class:Container
Checks whether the container is empty or not.- Specified by:
isEmpty
in interfaceWordStorage<Container>
- Specified by:
isEmpty
in classContainer
- Returns:
- true if the container is empty.
-
closeValueLength
private void closeValueLength(int value, int index) -
contains
public boolean contains(char x) Description copied from class:Container
Checks whether the contain contains the provided value -
contains
public boolean contains(int minimum, int supremum) Description copied from class:Container
Checks whether the container contains the entire range -
contains
-
contains
-
contains
-
convertToLazyBitmapIfNeeded
-
copyToOffset
private void copyToOffset(int offset) -
copyValuesLength
private void copyValuesLength(char[] src, int srcIndex, char[] dst, int dstIndex, int length) -
decrementLength
private void decrementLength(int index) -
decrementValue
private void decrementValue(int index) -
deserialize
Description copied from class:Container
Deserialize (recover) the container.- Specified by:
deserialize
in classContainer
- Parameters:
in
- the DataInput stream- Throws:
IOException
- Signals that an I/O exception has occurred.
-
ensureCapacity
void ensureCapacity(int minNbRuns) -
equals
-
equals
-
equals
-
fillLeastSignificant16bits
public void fillLeastSignificant16bits(int[] x, int i, int mask) Description copied from class:Container
Fill the least significant 16 bits of the integer array, starting at index i, with the short values from this container. The caller is responsible to allocate enough room. The most significant 16 bits of each integer are given by the most significant bits of the provided mask.- Specified by:
fillLeastSignificant16bits
in classContainer
- Parameters:
x
- provided arrayi
- starting indexmask
- indicates most significant bits
-
flip
Description copied from class:Container
Add a short to the container if it is not present, otherwise remove it. May generate a new container. -
getArraySizeInBytes
public int getArraySizeInBytes()Description copied from class:Container
Size of the underlying array- Specified by:
getArraySizeInBytes
in classContainer
- Returns:
- size in bytes
-
getCardinality
public int getCardinality()Description copied from class:Container
Computes the distinct number of char values in the container. Can be expected to run in constant time.- Specified by:
getCardinality
in classContainer
- Returns:
- the cardinality
-
getLength
public char getLength(int index) Gets the length of the run at the index.- Parameters:
index
- the index of the run.- Returns:
- the length of the run at the index.
- Throws:
ArrayIndexOutOfBoundsException
- if index is negative or larger than the index of the last run.
-
getReverseCharIterator
Description copied from class:Container
Iterator to visit the char values in the container in descending order.- Specified by:
getReverseCharIterator
in classContainer
- Returns:
- iterator
-
getCharIterator
Description copied from class:Container
Iterator to visit the char values in the container in ascending order.- Specified by:
getCharIterator
in classContainer
- Returns:
- iterator
-
getCharRankIterator
Description copied from class:Container
Iterator to visit the short values in container and pre-compute ranks- Specified by:
getCharRankIterator
in classContainer
- Returns:
- iterator
-
getBatchIterator
Description copied from class:Container
Gets an iterator to visit the contents of the container in batches- Specified by:
getBatchIterator
in classContainer
- Returns:
- iterator
-
getSizeInBytes
public int getSizeInBytes()Description copied from class:Container
Computes an estimate of the memory usage of this container. The estimate is not meant to be exact.- Specified by:
getSizeInBytes
in classContainer
- Returns:
- estimated memory usage in bytes
-
getValue
public char getValue(int index) Gets the value of the first element of the run at the index.- Parameters:
index
- the index of the run.- Returns:
- the value of the first element of the run at the index.
- Throws:
ArrayIndexOutOfBoundsException
- if index is negative or larger than the index of the last run.
-
hashCode
public int hashCode() -
iadd
Description copied from class:Container
Add all shorts in [begin,end) using an unsigned interpretation. May generate a new container. -
iand
Description copied from class:Container
Computes the in-place bitwise AND of this container with another (intersection). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iand
Description copied from class:Container
Computes the in-place bitwise AND of this container with another (intersection). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iand
Description copied from class:Container
Computes the in-place bitwise AND of this container with another (intersection). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iandNot
Description copied from class:Container
Computes the in-place bitwise ANDNOT of this container with another (difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iandNot
Description copied from class:Container
Computes the in-place bitwise ANDNOT of this container with another (difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iandNot
Description copied from class:Container
Computes the in-place bitwise ANDNOT of this container with another (difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
ilazyor
-
ilazyorToRun
-
increaseCapacity
private void increaseCapacity() -
incrementLength
private void incrementLength(int index) -
incrementValue
private void incrementValue(int index) -
initValueLength
private void initValueLength(int value, int index) -
inot
Description copied from class:Container
Computes the in-place bitwise NOT of this container (complement). Only those bits within the range are affected. The current container is generally modified. May generate a new container. -
intersects
Description copied from class:Container
Returns true if the current container intersects the other container.- Specified by:
intersects
in classContainer
- Parameters:
x
- other container- Returns:
- whether they intersect
-
intersects
Description copied from class:Container
Returns true if the current container intersects the other container.- Specified by:
intersects
in classContainer
- Parameters:
x
- other container- Returns:
- whether they intersect
-
intersects
Description copied from class:Container
Returns true if the current container intersects the other container.- Specified by:
intersects
in classContainer
- Parameters:
x
- other container- Returns:
- whether they intersect
-
intersects
public boolean intersects(int minimum, int supremum) Description copied from class:Container
Checks if the container intersects with a range- Specified by:
intersects
in classContainer
- Parameters:
minimum
- the inclusive unsigned lower bound of the rangesupremum
- the exclusive unsigned upper bound of the range- Returns:
- true if the container intersects the range
-
ior
Description copied from class:Container
Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
ior
Description copied from class:Container
Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
ior
Description copied from class:Container
Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
iremove
Description copied from class:Container
Remove shorts in [begin,end) using an unsigned interpretation. May generate a new container. -
isFull
public boolean isFull()Description copied from class:Container
Checks whether the container is full or not. -
full
-
iterator
-
ixor
Description copied from class:Container
Computes the in-place bitwise XOR of this container with another (symmetric difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
ixor
Description copied from class:Container
Computes the in-place bitwise XOR of this container with another (symmetric difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
ixor
Description copied from class:Container
Computes the in-place bitwise XOR of this container with another (symmetric difference). The current container is generally modified, whereas the provided container (x) is unaffected. May generate a new container. -
lazyandNot
-
lazyor
-
lazyorToRun
-
lazyxor
-
limit
Description copied from class:Container
Create a new Container containing at most maxcardinality integers. -
makeRoomAtIndex
private void makeRoomAtIndex(int index) -
mergeValuesLength
private void mergeValuesLength(int begin, int end) -
not
Description copied from class:Container
Computes the bitwise NOT of this container (complement). Only those bits within the range are affected. The current container is left unaffected. -
numberOfRuns
public int numberOfRuns()- Specified by:
numberOfRuns
in classContainer
-
or
Description copied from class:Container
Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected. -
or
Description copied from class:Container
Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected. -
or
Description copied from class:Container
Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected. -
prependValueLength
private void prependValueLength(int value, int index) -
rank
public int rank(char lowbits) Description copied from class:Container
Rank returns the number of integers that are smaller or equal to x (Rank(infinity) would be GetCardinality()). -
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
-
recoverRoomAtIndex
private void recoverRoomAtIndex(int index) -
recoverRoomsInRange
private void recoverRoomsInRange(int begin, int end) -
remove
Description copied from class:Container
Return a new container with all chars in [begin,end) remove using an unsigned interpretation. -
remove
Description copied from class:Container
Remove the char from this container. May create a new container. -
repairAfterLazy
Description copied from class:Container
The output of a lazyOR or lazyIOR might be an invalid container, this should be called on it.- Specified by:
repairAfterLazy
in classContainer
- Returns:
- a new valid container
-
runOptimize
Convert to Array or Bitmap container if the serialized form would be shorter. Exactly the same functionality as toEfficientContainer.- Specified by:
runOptimize
in interfaceWordStorage<Container>
- Specified by:
runOptimize
in classContainer
- Returns:
- the new container
-
select
public char select(int j) Description copied from class:Container
Return the jth value -
serialize
Description copied from class:Container
Serialize the container.- Specified by:
serialize
in classContainer
- Parameters:
out
- the DataOutput stream- Throws:
IOException
- Signals that an I/O exception has occurred.
-
serializedSizeInBytes
public int serializedSizeInBytes()Description copied from class:Container
Report the number of bytes required to serialize this container.- Specified by:
serializedSizeInBytes
in classContainer
- Returns:
- the size in bytes
-
setLength
private void setLength(int index, char v) -
setLength
private void setLength(char[] valueslength, int index, char v) -
setValue
private void setValue(int index, char v) -
setValue
private void setValue(char[] valueslength, int index, char v) -
skipAhead
-
smartAppend
private void smartAppend(char val) -
smartAppend
void smartAppend(char start, char length) -
smartAppendExclusive
private void smartAppendExclusive(char val) -
smartAppendExclusive
private void smartAppendExclusive(char start, char length) -
toBitmapIfNeeded
-
toBitmapOrArrayContainer
Convert the container to either a Bitmap or an Array Container, depending on the cardinality.- Parameters:
card
- the current cardinality- Returns:
- new container
-
toEfficientContainer
-
toMappeableContainer
Description copied from class:Container
Convert to a mappeable container.- Specified by:
toMappeableContainer
in classContainer
- Returns:
- the mappeable container
-
toCharBuffer
Return the content of this container as a ShortBuffer. This creates a copy and might be relatively slow.- Returns:
- the ShortBuffer
-
toString
-
trim
public void trim()Description copied from class:Container
If possible, recover wasted memory. -
valueLengthContains
private boolean valueLengthContains(int value, int index) -
writeArray
Description copied from class:Container
Write just the underlying array.- Specified by:
writeArray
in classContainer
- Parameters:
out
- output stream- Throws:
IOException
- in case of failure
-
writeArray
Description copied from class:Container
Write just the underlying array.- Specified by:
writeArray
in classContainer
- Parameters:
buffer
- ByteBuffer to write to
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
xor
Description copied from class:Container
Computes the bitwise XOR of this container with another (symmetric difference). This container as well as the provided container are left unaffected. -
xor
Description copied from class:Container
Computes the bitwise XOR of this container with another (symmetric difference). This container as well as the provided container are left unaffected. -
xor
Description copied from class:Container
Computes the bitwise XOR of this container with another (symmetric difference). This container as well as the provided container are left unaffected. -
forEach
Description copied from class:Container
Iterate through the values of this container and pass them along to the IntConsumer, using msb as the 16 most significant bits. -
forAll
Description copied from class:Container
Consume presence information for all values in this container. -
forAllFrom
Description copied from class:Container
Consume presence information for all values greater or equal to startValue in this container.- Specified by:
forAllFrom
in classContainer
- Parameters:
startValue
- First value to consume. Corresponds to relativePos=0 in the range consumer.rrc
- consumer
-
forAllUntil
Description copied from class:Container
Consume presence information for all values smaller than endValue in this container.- Specified by:
forAllUntil
in classContainer
- Parameters:
offset
- First value in this container corresponds to this relativePos in the range consumer.endValue
- First value greater than last value to consume.rrc
- consumer
-
forAllInRange
Description copied from class:Container
Consumer presence information for all values in the range [startValue, endValue) in this container.- Specified by:
forAllInRange
in classContainer
- Parameters:
startValue
- First value to consume. Corresponds to relativePos=0 in the range consumer.endValue
- First value greater than last value to consume.rrc
- consumer
-
toBitmapContainer
Description copied from class:Container
Convert the current container to a BitmapContainer, if a conversion is needed. If the container is already a bitmap, the container is returned unchanged.- Specified by:
toBitmapContainer
in classContainer
- Returns:
- a bitmap container
-
nextValue
public int nextValue(char fromValue) Description copied from class:Container
Gets the first value greater than or equal to the lower bound, or -1 if no such value exists. -
previousValue
public int previousValue(char fromValue) Description copied from class:Container
Gets the last value less than or equal to the upper bound, or -1 if no such value exists.- Specified by:
previousValue
in classContainer
- Parameters:
fromValue
- the upper bound (inclusive)- Returns:
- the previous value
-
nextAbsentValue
public int nextAbsentValue(char fromValue) Description copied from class:Container
Gets the first absent value greater than or equal to the lower bound.- Specified by:
nextAbsentValue
in classContainer
- Parameters:
fromValue
- the lower bound (inclusive)- Returns:
- the next absent value
-
previousAbsentValue
public int previousAbsentValue(char fromValue) Description copied from class:Container
Gets the last value less than or equal to the upper bound.- Specified by:
previousAbsentValue
in classContainer
- Parameters:
fromValue
- the upper bound (inclusive)- Returns:
- the previous absent value
-
first
public int first()Description copied from class:Container
Get the first integer held in the container -
last
public int last()Description copied from class:Container
Get the last integer held in the container
-