Class BitArray


  • public final class BitArray
    extends java.lang.Object

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

    Since:
    5.0.2
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int[] bits  
      int size  
    • Constructor Summary

      Constructors 
      Constructor Description
      BitArray​(int size)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Clears all bits (sets to false).
      void flip​(int i)
      Flips bit i.
      boolean get​(int i)  
      int[] getBitArray()  
      int getSize()  
      boolean isRange​(int start, int end, boolean value)
      Efficient method to check if a range of bits is set, or not set.
      private static int[] makeArray​(int size)  
      void reverse()
      Reverses all bits in the array.
      void set​(int i)
      Sets bit i.
      void setBulk​(int i, int newBits)
      Sets a block of 32 bits, starting at bit i.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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:
        java.lang.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.
      • makeArray

        private static int[] makeArray​(int size)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object