Class AbstractBitVector

java.lang.Object
java.util.AbstractCollection<Boolean>
it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection
it.unimi.dsi.fastutil.booleans.AbstractBooleanBigList
it.unimi.dsi.bits.AbstractBitVector
All Implemented Interfaces:
BitVector, it.unimi.dsi.fastutil.BigList<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<Boolean>, Comparable<it.unimi.dsi.fastutil.BigList<? extends Boolean>>, Iterable<Boolean>, Collection<Boolean>, 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 
    A list-of-integers view of a bit vector.
    static class 
    A view of a bit vector as a sorted set of long integers.
    static class 
    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
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    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).
    Performs a logical and between this bit vector and another one, leaving the result in this vector.
    append(long value, int k)
    Appends the less significant bits of a long integer to this bit vector.
    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
    Returns a view of this bit vector as a sorted set of long integers.
    long[]
    Returns the bits in this bit vector as an array of longs, not to be modified.
    void
    void
    clear(int index)
     
    void
    clear(long index)
    Clears a bit in this bit vector (optional operation).
    int
    Compares lexicographically this bit vector with another bit vector.
    int
    compareTo(it.unimi.dsi.fastutil.BigList<? extends Boolean> list)
     
    Returns a copy of this bit vector.
    copy(long from, long to)
    Returns a copy of a part of this bit vector.
    long
    Counts the number of bits set to true in this bit vector.
    protected void
    ensureIndex(long index)
     
    protected void
     
    boolean
    equals(BitVector v, long start, long end)
    Checks for equality with a segment of another vector.
    boolean
     
    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
    Returns the position of the first bit set in this bit vector.
    long
    Returns the position of the first bit unset in this bit vector.
    void
    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
    Returns a hash code for this bit vector.
    boolean
    Returns true if this bit vector is a prefix of the specified bit vector.
    boolean
    Returns true if this bit vector is a proper prefix of the specified bit vector.
    long
    Returns the position of the last bit set in this bit vector.
    long
    Returns the position of the last bit unset in this bit vector.
    length(long newLength)
    Sets the number of bits in this bit vector.
    long
    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.
    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)
     
    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
    Deprecated.
    void
    size(long newSize)
     
    long
    subVector(long from)
    Returns a subvector view specified by initial index and running up to the end of this bit vector.
    subVector(long from, long to)
    Returns a subvector view specified by initial and final index.
    Returns a string representation of this vector.
    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.bits.BitVector

    length

    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 Details

    • AbstractBitVector

      public AbstractBitVector()
  • Method Details

    • 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)
    • fast

      public BitVector fast()
      Returns an instance of LongArrayBitVector containing a copy of this bit vector.
      Specified by:
      fast in interface BitVector
      Returns:
      an instance of LongArrayBitVector containing a copy of this bit vector.
    • 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<Boolean>
      Specified by:
      size in interface BitVector
      Specified by:
      size in interface Collection<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 Collection<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(Object o)
      Specified by:
      equals in interface Collection<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 Collection<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<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:
    • compareTo

      public int compareTo(it.unimi.dsi.fastutil.BigList<? extends Boolean> list)
      Specified by:
      compareTo in interface Comparable<it.unimi.dsi.fastutil.BigList<? extends 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 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.