Class SparseSelect
- All Implemented Interfaces:
BigList<Long>
,LongBigList
,LongCollection
,LongIterable
,LongStack
,Size64
,Stack<Long>
,Select
,Serializable
,Comparable<BigList<? extends Long>>
,Iterable<Long>
,Collection<Long>
Instances of this classes do not add support to a bit vector: rather, they replace the bit vector with a succinct representation of the positions of the ones in the bit vector.
Note that some data may be shared with SparseRank
: just use the factory method SparseRank.getSelect()
to obtain an instance. In that
case, numBits()
counts just the new data used to build the class, and not the shared part.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class it.unimi.dsi.sux4j.util.EliasFanoMonotoneLongBigList
EliasFanoMonotoneLongBigList.EliasFanoMonotoneLongBigListIterator
Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.longs.AbstractLongBigList
AbstractLongBigList.LongRandomAccessSubList, AbstractLongBigList.LongSubList
-
Field Summary
Modifier and TypeFieldDescriptionprotected final boolean
Whether this structure was built from aSparseRank
structure, and thus shares part of its internal state.Fields inherited from class it.unimi.dsi.sux4j.util.EliasFanoMonotoneLongBigList
l, length, lowerBits, lowerBitsMask, selectUpper, upperBits
-
Constructor Summary
ModifierConstructorDescriptionSparseSelect
(long[] bits, long length) Creates a new select structure using a long array.protected
SparseSelect
(long n, long m, int l, long[] lowerBits, SimpleSelect selectUpper) SparseSelect
(long n, long m, LongIterator iterator) Creates a new select structure using an iterator.SparseSelect
(BitVector bitVector) Creates a new select structure using a bit vector.SparseSelect
(LongBigList list) Creates a new select structure using a big list of longs.SparseSelect
(LongList list) Creates a new select structure using a list of longs. -
Method Summary
Modifier and TypeMethodDescriptionReturns the bit vector indexed; since the bits are not stored in this data structure, a copy is built on purpose and returned.boolean
long
getLong
(long pos) Returns the element at the specified position.getRank()
Creates a newSparseRank
structure sharing data with this instance.int
hashCode()
long
numBits()
Returns the overall number of bits allocated by this structure.long
select
(long rank) Returns the position of the bit of given rank.int
size()
Deprecated.long
size64()
toString()
Methods inherited from class it.unimi.dsi.sux4j.util.EliasFanoMonotoneLongBigList
dump, dump, fits, get, get, getDelta, iterator, listIterator, listIterator
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongBigList
add, add, add, addAll, addAll, addAll, addAll, addElements, addElements, clear, compareTo, contains, ensureIndex, ensureRestrictedIndex, forEach, get, getElements, indexOf, indexOf, lastIndexOf, lastIndexOf, peek, peekLong, pop, popLong, push, push, rem, remove, removeElements, removeLong, set, set, setElements, size, subList, top, topLong
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongCollection
add, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toArray, toLongArray, toLongArray
Methods inherited from class java.util.AbstractCollection
isEmpty, toArray, toArray
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toArray
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongBigList
addAll, addAll, addAll, addAll, getElements, setElements, setElements, spliterator
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongCollection
add, contains, containsAll, longIterator, longParallelStream, longSpliterator, longStream, parallelStream, remove, removeAll, removeIf, removeIf, removeIf, retainAll, stream, toArray, toLongArray, toLongArray
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongIterable
forEach, forEach
-
Field Details
-
fromRank
protected final boolean fromRankWhether this structure was built from aSparseRank
structure, and thus shares part of its internal state.
-
-
Constructor Details
-
SparseSelect
public SparseSelect(long[] bits, long length) Creates a new select structure using a long array.The resulting structure keeps no reference to the original array.
- Parameters:
bits
- a long array containing the bits.length
- the number of valid bits inbits
.
-
SparseSelect
Creates a new select structure using a bit vector.The resulting structure keeps no reference to the original bit vector.
- Parameters:
bitVector
- the input bit vector.
-
SparseSelect
Creates a new select structure using an iterator.This constructor is particularly useful if the positions of the ones are provided by some sequential source.
- Parameters:
n
- the number of bits in the underlying bit vector.m
- the number of ones in the underlying bit vector.iterator
- an iterator returning the positions of the ones in the underlying bit vector in increasing order.
-
SparseSelect
Creates a new select structure using a list of longs.- Parameters:
list
- the list of the positions of ones.
-
SparseSelect
Creates a new select structure using a big list of longs.This constructor is particularly useful if the positions of the ones are provided by some sequential source.
- Parameters:
list
- the list of the positions of ones.
-
SparseSelect
-
-
Method Details
-
getRank
Creates a newSparseRank
structure sharing data with this instance.- Returns:
- a new
SparseRank
structure sharing data with this instance.
-
size64
public long size64()- Specified by:
size64
in interfaceSize64
- Overrides:
size64
in classEliasFanoMonotoneLongBigList
-
size
Deprecated.- Specified by:
size
in interfaceBigList<Long>
- Specified by:
size
in interfaceCollection<Long>
- Specified by:
size
in interfaceSize64
- Overrides:
size
in classAbstractLongBigList
-
getLong
public long getLong(long pos) Description copied from class:EliasFanoMonotoneLongBigList
Returns the element at the specified position.- Specified by:
getLong
in interfaceLongBigList
- Overrides:
getLong
in classEliasFanoMonotoneLongBigList
- Parameters:
pos
- a position in the list.- Returns:
- the element at the specified position; if
index
is out of bounds, behavior is undefined.
-
numBits
public long numBits()Description copied from interface:Select
Returns the overall number of bits allocated by this structure.- Specified by:
numBits
in interfaceSelect
- Overrides:
numBits
in classEliasFanoMonotoneLongBigList
- Returns:
- the overall number of bits allocated by this structure (not including the bits of the indexed vector).
-
select
public long select(long rank) Description copied from interface:Select
Returns the position of the bit of given rank. Equivalently, returns the greatest position that is preceded by the specified number of ones. -
bitVector
Returns the bit vector indexed; since the bits are not stored in this data structure, a copy is built on purpose and returned. -
hashCode
public int hashCode()- Specified by:
hashCode
in interfaceCollection<Long>
- Overrides:
hashCode
in classAbstractLongBigList
-
equals
- Specified by:
equals
in interfaceCollection<Long>
- Overrides:
equals
in classAbstractLongBigList
-
toString
- Overrides:
toString
in classAbstractLongBigList
-