Class AbstractBitVector.SubBitVector

All Implemented Interfaces:
BitVector, BigList<Boolean>, BooleanBigList, BooleanCollection, BooleanIterable, BooleanStack, Size64, Stack<Boolean>, Comparable<BigList<? extends Boolean>>, Iterable<Boolean>, Collection<Boolean>, RandomAccess
Enclosing class:
AbstractBitVector

public static class AbstractBitVector.SubBitVector extends AbstractBitVector implements BitVector
A subvector of a given bit vector, specified by an initial and a final bit.
  • Field Details

    • bitVector

      protected final BitVector bitVector
      The underlying bit vector.
    • from

      protected final long from
      The initial bit (inclusive).
    • to

      protected long to
      The final bit (not inclusive).
  • Constructor Details

    • SubBitVector

      public SubBitVector(BitVector l, long from, long to)
  • Method Details

    • getBoolean

      public boolean getBoolean(long index)
      Specified by:
      getBoolean in interface BooleanBigList
    • 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
      Overrides:
      getInt in class AbstractBitVector
      Parameters:
      index - the index of a bit.
      Returns:
      the value of the specified bit as an integer (0 or 1).
    • set

      public boolean set(long index, boolean value)
      Specified by:
      set in interface BooleanBigList
      Overrides:
      set in class AbstractBitVector
    • 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
      Overrides:
      set in class AbstractBitVector
      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, boolean value)
      Specified by:
      add in interface BooleanBigList
      Overrides:
      add in class AbstractBitVector
    • 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
      Overrides:
      add in class AbstractBitVector
      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 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
      Overrides:
      add in class AbstractBitVector
      Parameters:
      value - the new value (any nonzero integer for a true bit, zero for a false bit).
    • removeBoolean

      public boolean removeBoolean(long index)
      Specified by:
      removeBoolean in interface BooleanBigList
      Overrides:
      removeBoolean in class AbstractBitVector
    • 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
      Overrides:
      copy in class AbstractBitVector
      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)
    • 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
      Overrides:
      subVector in class AbstractBitVector
      Parameters:
      from - the first index (inclusive).
      to - the last index (not inclusive).
      Returns:
      a subvector view specified by initial and final index.
    • 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
      Overrides:
      getLong in class AbstractBitVector
      Parameters:
      from - the starting bit (inclusive).
      to - the ending bit (exclusive).
      Returns:
      the long value contained in the specified bits.
    • asLongSet

      public 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
      Overrides:
      asLongSet in class AbstractBitVector
      Returns:
      a view of this bit vector as a sorted set of long integers.
    • length

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

      If the number of bits in this bit vector is smaller than or equal to Integer.MAX_VALUE, this method is semantically equivalent to List.size(). In any case, this method is semantically equivalent to Size64.size64(), but it is prefererred.

      Specified by:
      length in interface BitVector
      Returns:
      the number of bits in this bit vector.
    • size64

      public long size64()
      Description copied from class: AbstractBitVector
      Specified by:
      size64 in interface Size64
      Overrides:
      size64 in class AbstractBitVector