Class SemiExternalGammaList

  • All Implemented Interfaces:
    it.unimi.dsi.fastutil.longs.LongCollection, it.unimi.dsi.fastutil.longs.LongIterable, it.unimi.dsi.fastutil.longs.LongList, it.unimi.dsi.fastutil.longs.LongStack, it.unimi.dsi.fastutil.Stack<java.lang.Long>, java.lang.Comparable<java.util.List<? extends java.lang.Long>>, java.lang.Iterable<java.lang.Long>, java.util.Collection<java.lang.Long>, java.util.List<java.lang.Long>

    public class SemiExternalGammaList
    extends it.unimi.dsi.fastutil.longs.AbstractLongList
    Provides semi-external random access to a list of γ-encoded integers.

    This class is a semi-external LongList that MG4J uses to access files containing frequencies.

    Instead, this class accesses frequencies in their compressed forms, and provides entry points for random access to each long. At construction time, entry points are computed with a certain step, which is the number of longs accessible from each entry point, or, equivalently, the maximum number of longs that will be necessary to read to access a given long.

    Warning: This class is not thread safe, and needs to be synchronised to be used in a multithreaded environment.

    Author:
    Fabien Campagne, Sebastiano Vigna
    • Nested Class Summary

      • Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.longs.AbstractLongList

        it.unimi.dsi.fastutil.longs.AbstractLongList.LongRandomAccessSubList, it.unimi.dsi.fastutil.longs.AbstractLongList.LongSubList
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_STEP  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long getLong​(int index)  
      int size()  
      • Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongList

        add, add, addAll, addAll, addAll, addAll, addElements, addElements, clear, compareTo, contains, ensureIndex, ensureRestrictedIndex, equals, forEach, getElements, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, peekLong, popLong, push, rem, removeElements, removeLong, replaceAll, set, setElements, size, subList, toArray, toLongArray, topLong, toString
      • Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongCollection

        add, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, 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

        toArray
      • Methods inherited from interface java.util.List

        containsAll, isEmpty, removeAll, retainAll, toArray, toArray
      • Methods inherited from interface it.unimi.dsi.fastutil.longs.LongCollection

        containsAll, longIterator, longParallelStream, longSpliterator, longStream, parallelStream, removeAll, removeIf, removeIf, removeIf, retainAll, spliterator, stream, toLongArray
      • Methods inherited from interface it.unimi.dsi.fastutil.longs.LongIterable

        forEach, forEach
      • Methods inherited from interface it.unimi.dsi.fastutil.longs.LongList

        add, add, addAll, addAll, contains, get, indexOf, lastIndexOf, remove, remove, replaceAll, replaceAll, set, setElements, setElements, sort, sort, spliterator, unstableSort, unstableSort
      • Methods inherited from interface it.unimi.dsi.fastutil.longs.LongStack

        peek, pop, push, top
      • Methods inherited from interface it.unimi.dsi.fastutil.Stack

        isEmpty
    • Constructor Detail

      • SemiExternalGammaList

        public SemiExternalGammaList​(InputBitStream longs,
                                     int step,
                                     int numLongs)
                              throws java.io.IOException
        Creates a new semi-external list.
        Parameters:
        longs - a bit stream containing γ-encoded longs.
        step - the step used to build random-access entry points, or -1 to get DEFAULT_STEP.
        numLongs - the overall number of offsets (i.e., the number of terms).
        Throws:
        java.io.IOException
      • SemiExternalGammaList

        public SemiExternalGammaList​(InputBitStream longs)
                              throws java.io.IOException
        Creates a new semi-external list.

        This quick-and-dirty constructor estimates the number of longs by checking for an EOFException.

        Parameters:
        longs - a bit stream containing γ-encoded longs.
        Throws:
        java.io.IOException
    • Method Detail

      • getLong

        public final long getLong​(int index)
      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<java.lang.Long>
        Specified by:
        size in interface java.util.List<java.lang.Long>
        Specified by:
        size in class java.util.AbstractCollection<java.lang.Long>