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:
it.unimi.dsi.fastutil.BigList<Long>, it.unimi.dsi.fastutil.longs.LongBigList, it.unimi.dsi.fastutil.longs.LongCollection, it.unimi.dsi.fastutil.longs.LongIterable, it.unimi.dsi.fastutil.longs.LongStack, it.unimi.dsi.fastutil.Size64, it.unimi.dsi.fastutil.Stack<Long>, Serializable, Comparable<it.unimi.dsi.fastutil.BigList<? extends Long>>, Iterable<Long>, Collection<Long>
public class TwoSizesLongBigList
extends it.unimi.dsi.fastutil.longs.AbstractLongBigList
implements Serializable
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
it.unimi.dsi.fastutil.longs.AbstractLongBigList.LongRandomAccessSubList, it.unimi.dsi.fastutil.longs.AbstractLongBigList.LongSubList -
Constructor Summary
ConstructorsConstructorDescriptionTwoSizesLongBigList(it.unimi.dsi.fastutil.bytes.ByteIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList(it.unimi.dsi.fastutil.ints.IntIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList(it.unimi.dsi.fastutil.longs.LongIterable elements) Builds a new two-sizes long big list using a given iterable object.TwoSizesLongBigList(it.unimi.dsi.fastutil.shorts.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, toStringMethods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongCollection
add, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toArray, toLongArray, toLongArrayMethods inherited from class AbstractCollection
isEmpty, toArray, toArrayMethods inherited from interface Collection
containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toArrayMethods inherited from interface it.unimi.dsi.fastutil.longs.LongBigList
addAll, addAll, addAll, addAll, getElements, setElements, setElements, spliteratorMethods 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, toLongArrayMethods inherited from interface it.unimi.dsi.fastutil.longs.LongIterable
forEach, forEachMethods inherited from interface it.unimi.dsi.fastutil.Stack
isEmpty
-
Constructor Details
-
TwoSizesLongBigList
public TwoSizesLongBigList(it.unimi.dsi.fastutil.ints.IntIterable elements) Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements- an iterable object.
-
TwoSizesLongBigList
public TwoSizesLongBigList(it.unimi.dsi.fastutil.shorts.ShortIterable elements) Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements- an iterable object.
-
TwoSizesLongBigList
public TwoSizesLongBigList(it.unimi.dsi.fastutil.bytes.ByteIterable elements) Builds a new two-sizes long big list using a given iterable object.- Parameters:
elements- an iterable object.
-
TwoSizesLongBigList
public TwoSizesLongBigList(it.unimi.dsi.fastutil.longs.LongIterable elements) 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:
getLongin interfaceit.unimi.dsi.fastutil.longs.LongBigList
-
size64
public long size64()- Specified by:
size64in interfaceit.unimi.dsi.fastutil.Size64
-
numBits
public long numBits()
-