Package it.unimi.dsi.sux4j.util
Class TwoSizesLongBigList
java.lang.Object
java.util.AbstractCollection<Long>
it.unimi.dsi.fastutil.longs.AbstractLongCollection
it.unimi.dsi.fastutil.longs.AbstractLongBigList
it.unimi.dsi.sux4j.util.TwoSizesLongBigList
- All Implemented Interfaces:
BigList<Long>
,LongBigList
,LongCollection
,LongIterable
,LongStack
,Size64
,Stack<Long>
,Serializable
,Comparable<BigList<? extends Long>>
,Iterable<Long>
,Collection<Long>
A compressed big list of longs; small elements and large elements are stored separately, using two different, optimally chosen bit sizes.
Instances of this class store in a compacted form a list of natural numbers. Values are provided either through an iterable object. You will obtain a reduction in size only if the distribution of the values of the list is skewed towards small values.
Implementation details
Instances of this class store elements in two different LongArrayBitVector
-based lists—one
for large values and one for small values. The threshold between large and small is established by
measuring at construction time the most proficuous choice. A ranking structure built on a marker array (recording
which elements are stored in the large list) provides access of the correct element in each array.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.longs.AbstractLongBigList
AbstractLongBigList.LongRandomAccessSubList, AbstractLongBigList.LongSubList
-
Constructor Summary
ConstructorDescriptionTwoSizesLongBigList
(ByteIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList
(IntIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList
(LongIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList
(ShortIterable elements) Builds a new two-sizes long big list using a given iterable object. -
Method Summary
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongBigList
add, add, add, addAll, addAll, addAll, addAll, addElements, addElements, clear, compareTo, contains, ensureIndex, ensureRestrictedIndex, equals, forEach, get, getElements, hashCode, indexOf, indexOf, iterator, lastIndexOf, lastIndexOf, listIterator, listIterator, peek, peekLong, pop, popLong, push, push, rem, remove, removeElements, removeLong, set, set, setElements, size, size, subList, top, topLong, toString
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
-
Constructor Details
-
TwoSizesLongBigList
Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements
- an iterable object.
-
TwoSizesLongBigList
Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements
- an iterable object.
-
TwoSizesLongBigList
Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements
- an iterable object.
-
TwoSizesLongBigList
Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements
- an iterable object.
-
-
Method Details
-
getLong
public long getLong(long index) - Specified by:
getLong
in interfaceLongBigList
-
size64
public long size64() -
numBits
public long numBits()
-