Class BitArray


  • public final class BitArray
    extends Object

    A simple, fast array of bits, represented compactly by an array of ints internally.

    Since:
    5.0.2
    Author:
    Sean Owen
    • Field Detail

      • bits

        public int[] bits
      • size

        public final int size
    • Constructor Detail

      • BitArray

        public BitArray​(int size)
    • Method Detail

      • getSize

        public int getSize()
      • get

        public boolean get​(int i)
        Parameters:
        i - bit to get
        Returns:
        true iff bit i is set
      • set

        public void set​(int i)
        Sets bit i.
        Parameters:
        i - bit to set
      • flip

        public void flip​(int i)
        Flips bit i.
        Parameters:
        i - bit to set
      • setBulk

        public void setBulk​(int i,
                            int newBits)
        Sets a block of 32 bits, starting at bit i.
        Parameters:
        i - first bit to set
        newBits - the new value of the next 32 bits. Note again that the least-significant bit corresponds to bit i, the next-least-significant to i+1, and so on.
      • clear

        public void clear()
        Clears all bits (sets to false).
      • isRange

        public boolean isRange​(int start,
                               int end,
                               boolean value)
        Efficient method to check if a range of bits is set, or not set.
        Parameters:
        start - start of range, inclusive.
        end - end of range, exclusive
        value - if true, checks that bits in range are set, otherwise checks that they are not set
        Returns:
        true iff all bits are set or not set in range, according to value argument
        Throws:
        IllegalArgumentException - if end is less than or equal to start
      • getBitArray

        public int[] getBitArray()
        Returns:
        underlying array of ints. The first element holds the first 32 bits, and the least significant bit is bit 0.
      • reverse

        public void reverse()
        Reverses all bits in the array.