Class AbstractBitVector

  • All Implemented Interfaces:
    BitVector, it.unimi.dsi.fastutil.BigList<java.lang.Boolean>, it.unimi.dsi.fastutil.booleans.BooleanBigList, it.unimi.dsi.fastutil.booleans.BooleanCollection, it.unimi.dsi.fastutil.booleans.BooleanIterable, it.unimi.dsi.fastutil.booleans.BooleanStack, it.unimi.dsi.fastutil.Size64, it.unimi.dsi.fastutil.Stack<java.lang.Boolean>, java.lang.Comparable<it.unimi.dsi.fastutil.BigList<? extends java.lang.Boolean>>, java.lang.Iterable<java.lang.Boolean>, java.util.Collection<java.lang.Boolean>, java.util.RandomAccess
    Direct Known Subclasses:
    AbstractBitVector.SubBitVector, BooleanListBitVector, LongArrayBitVector, LongBigArrayBitVector

    public abstract class AbstractBitVector
    extends it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
    implements BitVector
    An abstract implementation of a BitVector.

    This abstract implementation provides almost all methods: you have to provide just BooleanList.getBoolean(int) and BitVector.length(). No attributes are defined.

    Note that the integer-set view provided by asLongSet() is not cached: if you want to cache the result of the first call, you must do your own caching.

    Warning: this class has several optimised methods that assume that getLong(long, long) is implemented efficiently when its arguments are multiples of Long.SIZE (see, e.g., the implementation of compareTo(BitVector) and longestCommonPrefixLength(BitVector)). If you want speed up the processing of your own BitVector implementations, just implement getLong(long, long) so that it is fast under the above conditions.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  AbstractBitVector.LongBigListView
      A list-of-integers view of a bit vector.
      static class  AbstractBitVector.LongSetView
      A view of a bit vector as a sorted set of long integers.
      static class  AbstractBitVector.SubBitVector
      A subvector of a given bit vector, specified by an initial and a final bit.
      • Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList

        it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList.BooleanRandomAccessSubList, it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList.BooleanSubList
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      boolean add​(boolean value)  
      void add​(int value)
      Adds a bit with specified value at the end of this bit vector.
      void add​(int index, boolean value)  
      void add​(long index, boolean value)  
      void add​(long index, int value)
      Adds a bit with specified integer value at the specified index (optional operation).
      BitVector and​(BitVector v)
      Performs a logical and between this bit vector and another one, leaving the result in this vector.
      BitVector append​(long value, int k)
      Appends the less significant bits of a long integer to this bit vector.
      BitVector append​(BitVector bv)
      Appends another bit vector to this bit vector.
      it.unimi.dsi.fastutil.longs.LongBigList asLongBigList​(int width)
      Returns a view of this bit vector as a list of nonnegative integers of specified width.
      it.unimi.dsi.fastutil.longs.LongSortedSet asLongSet()
      Returns a view of this bit vector as a sorted set of long integers.
      long[] bits()
      Returns the bits in this bit vector as an array of longs, not to be modified.
      void clear()
      void clear​(int index)  
      void clear​(long index)
      Clears a bit in this bit vector (optional operation).
      int compareTo​(BitVector v)
      Compares lexicographically this bit vector with another bit vector.
      int compareTo​(it.unimi.dsi.fastutil.BigList<? extends java.lang.Boolean> list)  
      BitVector copy()
      Returns a copy of this bit vector.
      BitVector copy​(long from, long to)
      Returns a copy of a part of this bit vector.
      long count()
      Counts the number of bits set to true in this bit vector.
      protected void ensureIndex​(long index)  
      protected void ensureRestrictedIndex​(long index)  
      boolean equals​(BitVector v, long start, long end)
      Checks for equality with a segment of another vector.
      boolean equals​(java.lang.Object o)  
      BitVector fast()
      Returns an instance of LongArrayBitVector containing a copy of this bit vector.
      void fill​(boolean value)
      Sets all bits this bit vector to the given boolean value (optional operation).
      void fill​(int value)
      Sets all bits this bit vector to the given integer value (optional operation).
      void fill​(long from, long to, boolean value)
      Fills a range of bits in this bit vector (optional operation).
      void fill​(long from, long to, int value)
      Clears a range of bits in this bit vector (optional operation).
      long firstOne()
      Returns the position of the first bit set in this bit vector.
      long firstZero()
      Returns the position of the first bit unset in this bit vector.
      void flip()
      Flips all bits in this bit vector (optional operation).
      void flip​(int index)  
      void flip​(long index)
      Flips a bit in this bit vector (optional operation).
      void flip​(long from, long to)
      Flips a range of bits in this bit vector (optional operation).
      boolean getBoolean​(int index)  
      int getInt​(long index)
      Returns the value of the specified bit as an integer.
      long getLong​(long from, long to)
      Returns the specified bit range as a long.
      int hashCode()
      Returns a hash code for this bit vector.
      boolean isPrefix​(BitVector v)
      Returns true if this bit vector is a prefix of the specified bit vector.
      boolean isProperPrefix​(BitVector v)
      Returns true if this bit vector is a proper prefix of the specified bit vector.
      long lastOne()
      Returns the position of the last bit set in this bit vector.
      long lastZero()
      Returns the position of the last bit unset in this bit vector.
      BitVector length​(long newLength)
      Sets the number of bits in this bit vector.
      long longestCommonPrefixLength​(BitVector v)
      Returns the length of the greatest common prefix between this and the specified bit vector.
      long nextOne​(long index)
      Returns the position of the first bit set at of after the given position.
      long nextZero​(long index)
      Returns the position of the first bit unset after the given position.
      BitVector or​(BitVector v)
      Performs a logical or between this bit vector and another one, leaving the result in this bit vector.
      long previousOne​(long index)
      Returns the position of the first bit set strictly before the given position.
      long previousZero​(long index)
      Returns the position of the first bit unset before or at the given position.
      boolean removeBoolean​(int index)  
      boolean removeBoolean​(long index)  
      BitVector replace​(BitVector bv)
      Replaces the content of this bit vector with another bit vector.
      void set​(int index)  
      boolean set​(int index, boolean value)  
      void set​(long index)
      Sets a bit in this bit vector (optional operation).
      boolean set​(long index, boolean value)  
      void set​(long index, int value)
      Sets the value of the specified bit as an integer (optional operation).
      int size()
      Deprecated.
      void size​(long newSize)  
      long size64()
      BitVector subVector​(long from)
      Returns a subvector view specified by initial index and running up to the end of this bit vector.
      BitVector subVector​(long from, long to)
      Returns a subvector view specified by initial and final index.
      java.lang.String toString()
      Returns a string representation of this vector.
      BitVector xor​(BitVector v)
      Performs a logical xor between this bit vector and another one, leaving the result in this vector.
      • Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList

        add, addAll, addAll, addAll, addAll, addElements, addElements, contains, forEach, get, getElements, indexOf, indexOf, iterator, lastIndexOf, lastIndexOf, listIterator, listIterator, peek, peekBoolean, pop, popBoolean, push, push, rem, remove, removeElements, set, setElements, subList, top, topBoolean
      • Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection

        add, contains, containsAll, containsAll, remove, removeAll, removeAll, retainAll, retainAll, toArray, toBooleanArray, toBooleanArray
      • 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 it.unimi.dsi.fastutil.BigList

        addAll
      • Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanBigList

        add, addAll, addAll, addAll, addAll, addAll, addElements, addElements, get, getBoolean, getElements, getElements, indexOf, indexOf, iterator, lastIndexOf, lastIndexOf, listIterator, listIterator, remove, removeElements, set, setElements, setElements, setElements, spliterator, subList
      • Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanCollection

        add, addAll, contains, contains, containsAll, rem, remove, removeAll, removeIf, removeIf, retainAll, toArray, toBooleanArray, toBooleanArray
      • Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanIterable

        forEach, forEach
      • Methods inherited from interface java.util.Collection

        addAll, containsAll, isEmpty, parallelStream, removeAll, retainAll, stream, toArray, toArray, toArray
      • Methods inherited from interface it.unimi.dsi.fastutil.Stack

        isEmpty
    • Constructor Detail

      • AbstractBitVector

        public AbstractBitVector()
    • Method Detail

      • ensureRestrictedIndex

        protected void ensureRestrictedIndex​(long index)
        Overrides:
        ensureRestrictedIndex in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • ensureIndex

        protected void ensureIndex​(long index)
        Overrides:
        ensureIndex in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • set

        public void set​(int index)
        Implementation Specification:
        This implementation delegates to set(long, boolean).
      • clear

        public void clear​(int index)
        Implementation Specification:
        This implementation delegates to set(long, boolean).
      • flip

        public void flip​(int index)
        Implementation Specification:
        This implementation delegates to flip(long).
      • set

        public void set​(long index)
        Description copied from interface: BitVector
        Sets a bit in this bit vector (optional operation).
        Specified by:
        set in interface BitVector
        Parameters:
        index - the index of a bit.
      • clear

        public void clear​(long index)
        Description copied from interface: BitVector
        Clears a bit in this bit vector (optional operation).
        Specified by:
        clear in interface BitVector
        Parameters:
        index - the index of a bit.
      • flip

        public void flip​(long index)
        Description copied from interface: BitVector
        Flips a bit in this bit vector (optional operation).
        Specified by:
        flip in interface BitVector
        Parameters:
        index - the index of a bit.
      • fill

        public void fill​(boolean value)
        Description copied from interface: BitVector
        Sets all bits this bit vector to the given boolean value (optional operation).
        Specified by:
        fill in interface BitVector
        Parameters:
        value - the value (true or false).
      • fill

        public void fill​(int value)
        Description copied from interface: BitVector
        Sets all bits this bit vector to the given integer value (optional operation).
        Specified by:
        fill in interface BitVector
        Parameters:
        value - the value (zero or nonzero).
      • flip

        public void flip()
        Description copied from interface: BitVector
        Flips all bits in this bit vector (optional operation).
        Specified by:
        flip in interface BitVector
      • fill

        public void fill​(long from,
                         long to,
                         boolean value)
        Description copied from interface: BitVector
        Fills a range of bits in this bit vector (optional operation).
        Specified by:
        fill in interface BitVector
        Parameters:
        from - the first index (inclusive).
        to - the last index (not inclusive).
        value - the value (true or false).
      • fill

        public void fill​(long from,
                         long to,
                         int value)
        Description copied from interface: BitVector
        Clears a range of bits in this bit vector (optional operation).
        Specified by:
        fill in interface BitVector
        Parameters:
        from - the first index (inclusive).
        to - the last index (not inclusive).
        value - the value (zero or nonzero).
      • flip

        public void flip​(long from,
                         long to)
        Description copied from interface: BitVector
        Flips a range of bits in this bit vector (optional operation).
        Specified by:
        flip in interface BitVector
        Parameters:
        from - the first index (inclusive).
        to - the last index (not inclusive).
      • getInt

        public int getInt​(long index)
        Description copied from interface: BitVector
        Returns the value of the specified bit as an integer.

        This method is a useful synonym for BooleanBigList.getBoolean(long).

        Specified by:
        getInt in interface BitVector
        Parameters:
        index - the index of a bit.
        Returns:
        the value of the specified bit as an integer (0 or 1).
      • getLong

        public long getLong​(long from,
                            long to)
        Description copied from interface: BitVector
        Returns the specified bit range as a long.

        Note that bit 0 of the returned long will be bit from of this bit vector.

        Implementations are invited to provide high-speed implementations for the case in which from is a multiple of Long.SIZE and to is from + Long.SIZE (or less, in case the vector length is exceeded). This behaviour make it possible to implement high-speed hashing, copies, etc.

        Specified by:
        getLong in interface BitVector
        Parameters:
        from - the starting bit (inclusive).
        to - the ending bit (exclusive).
        Returns:
        the long value contained in the specified bits.
      • getBoolean

        public boolean getBoolean​(int index)
        Implementation Specification:
        This implementation delegates to BooleanBigList.getBoolean(long).
      • removeBoolean

        public boolean removeBoolean​(int index)
        Implementation Specification:
        This implementation delegates to removeBoolean(long).
      • set

        public boolean set​(int index,
                           boolean value)
        Implementation Specification:
        This implementation delegates to set(long, boolean).
      • add

        public void add​(int index,
                        boolean value)
        Implementation Specification:
        This implementation delegates to add(long, boolean).
      • removeBoolean

        public boolean removeBoolean​(long index)
        Specified by:
        removeBoolean in interface it.unimi.dsi.fastutil.booleans.BooleanBigList
        Overrides:
        removeBoolean in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • set

        public boolean set​(long index,
                           boolean value)
        Specified by:
        set in interface it.unimi.dsi.fastutil.booleans.BooleanBigList
        Overrides:
        set in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • add

        public void add​(long index,
                        boolean value)
        Specified by:
        add in interface it.unimi.dsi.fastutil.booleans.BooleanBigList
        Overrides:
        add in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • set

        public void set​(long index,
                        int value)
        Description copied from interface: BitVector
        Sets the value of the specified bit as an integer (optional operation).

        This method is a useful synonym for BooleanBigList.set(long, boolean).

        Specified by:
        set in interface BitVector
        Parameters:
        index - the index of a bit.
        value - the new value (any nonzero integer for setting the bit, zero for clearing the bit).
      • add

        public void add​(long index,
                        int value)
        Description copied from interface: BitVector
        Adds a bit with specified integer value at the specified index (optional operation).

        This method is a useful synonym for BooleanBigList.add(long, boolean).

        Specified by:
        add in interface BitVector
        Parameters:
        index - the index of a bit.
        value - the value that will be inserted at position index (any nonzero integer for a true bit, zero for a false bit).
      • add

        public boolean add​(boolean value)
        Specified by:
        add in interface it.unimi.dsi.fastutil.booleans.BooleanCollection
        Overrides:
        add in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • add

        public void add​(int value)
        Description copied from interface: BitVector
        Adds a bit with specified value at the end of this bit vector.

        This method is a useful synonym for BooleanList.add(boolean).

        Specified by:
        add in interface BitVector
        Parameters:
        value - the new value (any nonzero integer for a true bit, zero for a false bit).
      • append

        public BitVector append​(long value,
                                int k)
        Description copied from interface: BitVector
        Appends the less significant bits of a long integer to this bit vector.
        Specified by:
        append in interface BitVector
        Parameters:
        value - a value to be appended
        k - the number of less significant bits to be added to this bit vector.
        Returns:
        this bit vector.
      • append

        public BitVector append​(BitVector bv)
        Description copied from interface: BitVector
        Appends another bit vector to this bit vector.
        Specified by:
        append in interface BitVector
        Parameters:
        bv - a bit vector to be appended.
        Returns:
        this bit vector.
      • copy

        public BitVector copy()
        Description copied from interface: BitVector
        Returns a copy of this bit vector.
        Specified by:
        copy in interface BitVector
        Returns:
        a copy of this bit vector.
      • copy

        public BitVector copy​(long from,
                              long to)
        Description copied from interface: BitVector
        Returns a copy of a part of this bit vector.
        Specified by:
        copy in interface BitVector
        Parameters:
        from - the starting bit, inclusive.
        to - the ending bit, not inclusive.
        Returns:
        a copy of the part of this bit vector going from bit from (inclusive) to bit to (not inclusive)
      • count

        public long count()
        Description copied from interface: BitVector
        Counts the number of bits set to true in this bit vector.
        Specified by:
        count in interface BitVector
        Returns:
        the number of bits set to true in this bit vector.
      • firstOne

        public long firstOne()
        Description copied from interface: BitVector
        Returns the position of the first bit set in this bit vector.
        Specified by:
        firstOne in interface BitVector
        Returns:
        the first bit set, or -1 for a vector of zeroes.
      • lastOne

        public long lastOne()
        Description copied from interface: BitVector
        Returns the position of the last bit set in this bit vector.
        Specified by:
        lastOne in interface BitVector
        Returns:
        the last bit set, or -1 for a vector of zeroes.
      • firstZero

        public long firstZero()
        Description copied from interface: BitVector
        Returns the position of the first bit unset in this bit vector.
        Specified by:
        firstZero in interface BitVector
        Returns:
        the first bit unset, or -1 for a vector of ones.
      • lastZero

        public long lastZero()
        Description copied from interface: BitVector
        Returns the position of the last bit unset in this bit vector.
        Specified by:
        lastZero in interface BitVector
        Returns:
        the last bit unset, or -1 for a vector of ones.
      • nextOne

        public long nextOne​(long index)
        Description copied from interface: BitVector
        Returns the position of the first bit set at of after the given position.
        Specified by:
        nextOne in interface BitVector
        Parameters:
        index - a bit position.
        Returns:
        the position of the first bit set at or after position index, or -1 if no such bit exists.
      • previousOne

        public long previousOne​(long index)
        Description copied from interface: BitVector
        Returns the position of the first bit set strictly before the given position.
        Specified by:
        previousOne in interface BitVector
        Parameters:
        index - a bit position.
        Returns:
        the position of the first bit set strictly before position index, or -1 if no such bit exists.
      • nextZero

        public long nextZero​(long index)
        Description copied from interface: BitVector
        Returns the position of the first bit unset after the given position.
        Specified by:
        nextZero in interface BitVector
        Parameters:
        index - a bit position.
        Returns:
        the first bit unset after position index (inclusive), or -1 if no such bit exists.
      • previousZero

        public long previousZero​(long index)
        Description copied from interface: BitVector
        Returns the position of the first bit unset before or at the given position.
        Specified by:
        previousZero in interface BitVector
        Parameters:
        index - a bit position.
        Returns:
        the first bit unset before or at the given position, or -1 if no such bit exists.
      • longestCommonPrefixLength

        public long longestCommonPrefixLength​(BitVector v)
        Description copied from interface: BitVector
        Returns the length of the greatest common prefix between this and the specified bit vector.
        Specified by:
        longestCommonPrefixLength in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        the length of the greatest common prefix.
      • isPrefix

        public boolean isPrefix​(BitVector v)
        Description copied from interface: BitVector
        Returns true if this bit vector is a prefix of the specified bit vector.
        Specified by:
        isPrefix in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        true if this bit vector is a prefix of v.
      • isProperPrefix

        public boolean isProperPrefix​(BitVector v)
        Description copied from interface: BitVector
        Returns true if this bit vector is a proper prefix of the specified bit vector.
        Specified by:
        isProperPrefix in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        true if this bit vector is a proper prefix of v (i.e., it is a prefix but not equal).
      • and

        public BitVector and​(BitVector v)
        Description copied from interface: BitVector
        Performs a logical and between this bit vector and another one, leaving the result in this vector.
        Specified by:
        and in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        this bit vector.
      • or

        public BitVector or​(BitVector v)
        Description copied from interface: BitVector
        Performs a logical or between this bit vector and another one, leaving the result in this bit vector.
        Specified by:
        or in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        this bit vector.
      • xor

        public BitVector xor​(BitVector v)
        Description copied from interface: BitVector
        Performs a logical xor between this bit vector and another one, leaving the result in this vector.
        Specified by:
        xor in interface BitVector
        Parameters:
        v - a bit vector.
        Returns:
        this bit vector.
      • size

        @Deprecated
        public int size()
        Deprecated.
        Description copied from interface: BitVector
        Specified by:
        size in interface it.unimi.dsi.fastutil.BigList<java.lang.Boolean>
        Specified by:
        size in interface BitVector
        Specified by:
        size in interface java.util.Collection<java.lang.Boolean>
        Specified by:
        size in interface it.unimi.dsi.fastutil.Size64
        Overrides:
        size in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • size64

        public long size64()
        Specified by:
        size64 in interface it.unimi.dsi.fastutil.Size64
        Implementation Specification:
        This implementation just returns BitVector.length().
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Collection<java.lang.Boolean>
        Overrides:
        clear in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • replace

        public BitVector replace​(BitVector bv)
        Replaces the content of this bit vector with another bit vector.
        Specified by:
        replace in interface BitVector
        Parameters:
        bv - a bit vector.
        Returns:
        this bit vector.
      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in interface java.util.Collection<java.lang.Boolean>
        Overrides:
        equals in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • equals

        public boolean equals​(BitVector v,
                              long start,
                              long end)
        Description copied from interface: BitVector
        Checks for equality with a segment of another vector.
        Specified by:
        equals in interface BitVector
        Parameters:
        v - a bit vector.
        start - the starting bit, inclusive.
        end - the ending bit, not inclusive.
        Returns:
        true if this bit vector and v are equal in the range of positions [from..to).
      • hashCode

        public int hashCode()
        Description copied from interface: BitVector
        Returns a hash code for this bit vector.

        Hash codes for bit vectors are defined as follows:

         final long length = length();
         long fullLength = length & -Long.SIZE;
         long h = 0x9e3779b97f4a7c13L ^ length;
         for(long i = 0; i < fullLength; i += Long.SIZE) h ^= (h << 5) + getLong(i, i + Long.SIZE) + (h >>> 2);
         if (length != fullLength) h ^= (h << 5) + getLong(fullLength, length) + (h >>> 2);
         (int)((h >>> 32) ^ h);
         

        The last value is the hash code of the bit vector. This hashing is based on shift-add-xor hashing (M.V. Ramakrishna and Justin Zobel, “Performance in practice of string hashing functions”, Proc. of the Fifth International Conference on Database Systems for Advanced Applications, 1997, pages 215−223).

        The returned value is not a high-quality hash such as Jenkins's, but it can be computed very quickly; in any case, 32 bits are too few for a high-quality hash to be used in large-scale applications.

        Important: all bit vector implementations are required to return the value defined here. The simplest way to obtain this result is to subclass AbstractBitVector.

        Specified by:
        hashCode in interface BitVector
        Specified by:
        hashCode in interface java.util.Collection<java.lang.Boolean>
        Overrides:
        hashCode in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
        Returns:
        a hash code for this bit vector.
      • bits

        public long[] bits()
        Description copied from interface: BitVector
        Returns the bits in this bit vector as an array of longs, not to be modified.
        Specified by:
        bits in interface BitVector
        Returns:
        an array of longs whose first BitVector.length() bits contain the bits of this bit vector. The array cannot be modified.
      • length

        public BitVector length​(long newLength)
        Description copied from interface: BitVector
        Sets the number of bits in this bit vector.

        It is expected that this method will try to allocate exactly the necessary space.

        If the argument fits an integer, this method has the same side effects of BooleanList.size(int). In any case, this method has the same side effects of BigList.size(long), but it is preferred, as it has the advantage of returning this bit vector, thus making it possible to chain methods.

        Specified by:
        length in interface BitVector
        Parameters:
        newLength - the new length in bits for this bit vector.
        Returns:
        this bit vector.
      • size

        public void size​(long newSize)
        Specified by:
        size in interface it.unimi.dsi.fastutil.BigList<java.lang.Boolean>
        Overrides:
        size in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • asLongSet

        public it.unimi.dsi.fastutil.longs.LongSortedSet asLongSet()
        Description copied from interface: BitVector
        Returns a view of this bit vector as a sorted set of long integers.

        More formally, this bit vector is infinitely extended to the left with zeros (e.g., all bits beyond BitVector.length(long) are considered zeroes). The resulting infinite string is interpreted as the characteristic function of a set of integers.

        Note that, in particular, the resulting string representation is exactly that of a BitSet.

        Specified by:
        asLongSet in interface BitVector
        Returns:
        a view of this bit vector as a sorted set of long integers.
      • asLongBigList

        public it.unimi.dsi.fastutil.longs.LongBigList asLongBigList​(int width)
        Description copied from interface: BitVector
        Returns a view of this bit vector as a list of nonnegative integers of specified width.

        More formally, getLong(p) will return the nonnegative integer defined by the bits starting at p * width (bit 0, inclusive) and ending at (p + 1) * width (bit width − 1, exclusive).

        Specified by:
        asLongBigList in interface BitVector
        Parameters:
        width - a bit width.
        Returns:
        a view of this bit vector as a list of nonnegative integers of specified width.
      • subVector

        public BitVector subVector​(long from,
                                   long to)
        Description copied from interface: BitVector
        Returns a subvector view specified by initial and final index.

        The object returned by this method is a bit vector representing a view of this bit vector restricted to the given indices. Changes to the subvector will be reflected in the main vector.

        Specified by:
        subVector in interface BitVector
        Parameters:
        from - the first index (inclusive).
        to - the last index (not inclusive).
        Returns:
        a subvector view specified by initial and final index.
      • subVector

        public BitVector subVector​(long from)
        Description copied from interface: BitVector
        Returns a subvector view specified by initial index and running up to the end of this bit vector.
        Specified by:
        subVector in interface BitVector
        Parameters:
        from - the first index (inclusive).
        Returns:
        a subvector view specified by initial index and running up to the end of this bit vector.
        See Also:
        BitVector.subVector(long, long)
      • compareTo

        public int compareTo​(it.unimi.dsi.fastutil.BigList<? extends java.lang.Boolean> list)
        Specified by:
        compareTo in interface java.lang.Comparable<it.unimi.dsi.fastutil.BigList<? extends java.lang.Boolean>>
        Overrides:
        compareTo in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
      • compareTo

        public int compareTo​(BitVector v)
        Compares lexicographically this bit vector with another bit vector.
        Parameters:
        v - another bit vector.
        Returns:
        -1, 0, or 1, depending on the lexicographical order of the two vectors.
        Implementation Notes:
        This method compares the two bit vectors by extracting a 64-bit word at a time using BitVector.getLong(long, long).
      • toString

        public java.lang.String toString()
        Returns a string representation of this vector.

        Note that this string representation shows the bit of index 0 at the leftmost position.

        Overrides:
        toString in class it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
        Returns:
        a string representation of this vector, with the bit of index 0 on the left.