Class MappedEliasFanoMonotoneLongBigList
- 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>, it.unimi.dsi.lang.FlyweightPrototype<MappedEliasFanoMonotoneLongBigList>, Closeable, Serializable, AutoCloseable, Comparable<it.unimi.dsi.fastutil.BigList<? extends Long>>, Iterable<Long>, Collection<Long>
EliasFanoMonotoneLongBigList/EliasFanoMonotoneBigLongBigList.
This class makes it possible to use an EliasFanoMonotoneLongBigList (or
EliasFanoMonotoneBigLongBigList) without actually loading the lower bits, but rather
mapping them into memory. You build an
EliasFanoMonotoneLongBigList (or EliasFanoMonotoneBigLongBigList) instance first,
and then you use the dump it to
disk providing a basename. The same basename must be used when loading
an instance of this class.
After usage, you should close() instances of this class to release the associated
FileChannel.
Instances of this class are not thread safe, but the copy() method provides a
lightweight duplicate that can be read independently by another thread. The method uses
LongMappedBigList.copy() to provide an independent mapping of the lower bits. Note that
the close() method, when invoked on any copy, will stop mapping of all copies. *
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassA list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.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 -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intThe number of lower bits.protected final longThe length of the sequence.static final Stringprotected it.unimi.dsi.fastutil.longs.LongMappedBigListThe list of lower bits of each element, stored explicitly.protected final longThe mask for the lower bits.static final Stringprotected final SimpleBigSelectThe select structure used to extract the upper bits.protected long[][]The upper bits, stored as unary gaps. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMappedEliasFanoMonotoneLongBigList(long length, int l, long[][] upperBits, SimpleBigSelect selectUpper, boolean littleEndian) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()copy()long[]get(long index, long[] dest) Extracts a number of consecutive entries into a given array.long[]get(long index, long[] dest, int offset, int length) Extracts a number of consecutive entries into a given array fragment.longgetDelta(long index) Returns the difference between two consecutive elements of the sequence.longgetLong(long index) Returns the element at the specified position.iterator()Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.listIterator(long from) Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.Maps an Elias–Fano monotone list into memory.Maps the lower bits of this list from a file.longnumBits()longsize64()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, lastIndexOf, lastIndexOf, 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
-
Field Details
-
OBJECT_EXTENSION
- See Also:
-
LOWER_BITS_EXTENSION
- See Also:
-
length
protected final long lengthThe length of the sequence. -
l
protected final int lThe number of lower bits. -
upperBits
protected long[][] upperBitsThe upper bits, stored as unary gaps. -
lowerBits
protected it.unimi.dsi.fastutil.longs.LongMappedBigList lowerBitsThe list of lower bits of each element, stored explicitly. -
selectUpper
The select structure used to extract the upper bits. -
lowerBitsMask
protected final long lowerBitsMaskThe mask for the lower bits.
-
-
Constructor Details
-
MappedEliasFanoMonotoneLongBigList
protected MappedEliasFanoMonotoneLongBigList(long length, int l, long[][] upperBits, SimpleBigSelect selectUpper, boolean littleEndian)
-
-
Method Details
-
load
public static MappedEliasFanoMonotoneLongBigList load(String basename) throws IOException, ClassNotFoundException Maps an Elias–Fano monotone list into memory.- Parameters:
basename- the basename of the dumped list. From the basename, two files will be derived: a serialized object with extensionOBJECT_EXTENSIONand a list of longs with extensionLOWER_BITS_EXTENSION.- Returns:
- an instance of this class.
- Throws:
IOExceptionClassNotFoundException
-
lowerBits
Maps the lower bits of this list from a file.This method is low level and should not be used in geneneral. There is no check that the file you are using is actually the right file for this instance.
- Parameters:
lowerBits- the name of the file containing the lower bits.- Returns:
- this instance.
- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
numBits
public long numBits() -
getLong
public long getLong(long index) Returns the element at the specified position.- Specified by:
getLongin interfaceit.unimi.dsi.fastutil.longs.LongBigList- Parameters:
index- a position in the list.- Returns:
- the element at the specified position; if
indexis out of bounds, behavior is undefined.
-
getDelta
public long getDelta(long index) Returns the difference between two consecutive elements of the sequence.- Parameters:
index- the index of an element (smaller thensize64()- 1).- Returns:
- the difference between the element of position
index + 1and that of positionindex; ifindexis out of bounds, behavior is undefined. - See Also:
-
get
public long[] get(long index, long[] dest, int offset, int length) Extracts a number of consecutive entries into a given array fragment.- Parameters:
index- the index of the first entry returned.dest- the destination array; it will be filled withlengthconsecutive entries starting at positionoffset; must be of length greater thanoffset.offset- the first position written indest.length- the number of elements written indeststarting atoffset.- Returns:
dest; if the arguments are out of bounds, behavior is undefined.- See Also:
-
get
public long[] get(long index, long[] dest) Extracts a number of consecutive entries into a given array.- Parameters:
index- the index of the first entry returned.dest- the destination array, of nonzero length; it will be filled with consecutive entries.- Returns:
dest; ifindexis out of bounds ordesthas length zero, behavior is undefined.- See Also:
-
listIterator
public MappedEliasFanoMonotoneLongBigList.MappedEliasFanoMonotoneLongBigListIterator listIterator(long from) Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.Forward iteration will be faster than iterated calls to
getLong(). Backward iteration is available, but it will perform similarly togetLong().- Specified by:
listIteratorin interfaceit.unimi.dsi.fastutil.BigList<Long>- Specified by:
listIteratorin interfaceit.unimi.dsi.fastutil.longs.LongBigList- Overrides:
listIteratorin classit.unimi.dsi.fastutil.longs.AbstractLongBigList- Parameters:
from- the starting position in the sequence.- Returns:
- a list iterator over the values of this
MappedEliasFanoMonotoneLongBigList. - See Also:
-
listIterator
Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.Forward iteration will be faster than iterated calls to
getLong(). Backward iteration is available, but it will perform similarly togetLong().- Specified by:
listIteratorin interfaceit.unimi.dsi.fastutil.BigList<Long>- Specified by:
listIteratorin interfaceit.unimi.dsi.fastutil.longs.LongBigList- Overrides:
listIteratorin classit.unimi.dsi.fastutil.longs.AbstractLongBigList- Returns:
- a list iterator over the values of this
MappedEliasFanoMonotoneLongBigList. - See Also:
-
iterator
Returns a list iterator over the values of thisMappedEliasFanoMonotoneLongBigList.Forward iteration will be faster than iterated calls to
getLong(). Backward iteration is available, but it will perform similarly togetLong().- Specified by:
iteratorin interfaceCollection<Long>- Specified by:
iteratorin interfaceIterable<Long>- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.longs.LongBigList- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.longs.LongCollection- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.longs.LongIterable- Overrides:
iteratorin classit.unimi.dsi.fastutil.longs.AbstractLongBigList- Returns:
- a list iterator over the values of this
MappedEliasFanoMonotoneLongBigList. - See Also:
-
size64
public long size64()- Specified by:
size64in interfaceit.unimi.dsi.fastutil.Size64
-
copy
- Specified by:
copyin interfaceit.unimi.dsi.lang.FlyweightPrototype<MappedEliasFanoMonotoneLongBigList>
-