Class FixedSizeBitSet

  • Direct Known Subclasses:
    SeqnoList

    public class FixedSizeBitSet
    extends java.lang.Object
    Class copied from BitSet. Changes are that the FixedSizeBitSet doesn't expand, so access to it doesn't need to be synchronized, plus we only need a few methods so most methods of the old class have been removed.
    Author:
    Bela Ban
    • Constructor Summary

      Constructors 
      Constructor Description
      FixedSizeBitSet()  
      FixedSizeBitSet​(int size)
      Creates a bit set whose initial size is the range 0 through size-1.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int cardinality()
      Returns the number of bits set to true in this bit set
      void clear​(int index)
      Sets the bit specified by the index to false.
      void clear​(int from, int to)
      Sets the bits from the specified from (inclusive) to the specified to (inclusive) to false.
      void flip()
      Flips all bits: 1 --> 0 and 0 --> 1
      boolean get​(int index)
      Returns the value of the bit with the specified index.
      int nextClearBit​(int fromIndex)
      Returns the index of the first bit that is set to false that occurs on or after the specified starting index.
      int nextSetBit​(int fromIndex)
      Returns the index of the first bit that is set to true that occurs on or after the specified starting index.
      int previousSetBit​(int from)
      Returns the index of the nearest bit that is set to true that occurs on or before the specified starting index.
      boolean set​(int index)
      Sets the bit at the specified index to true.
      void set​(int from, int to)
      Sets the bits from the specified from (inclusive) to the specified to (inclusive) to true.
      int size()  
      java.lang.String toString()
      Returns a string representation of this bit set.
      protected static int wordIndex​(int bitIndex)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • FixedSizeBitSet

        public FixedSizeBitSet()
      • FixedSizeBitSet

        public FixedSizeBitSet​(int size)
        Creates a bit set whose initial size is the range 0 through size-1. All bits are initially false.
        Parameters:
        size - the initial size of the bit set (in bits).
        Throws:
        java.lang.NegativeArraySizeException - if the specified initial size is negative
    • Method Detail

      • set

        public boolean set​(int index)
        Sets the bit at the specified index to true.
        Parameters:
        index - a bit index.
        Returns:
        true if the bit was 0 before, false otherwise
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is negative.
      • set

        public void set​(int from,
                        int to)
        Sets the bits from the specified from (inclusive) to the specified to (inclusive) to true.
        Parameters:
        from - index of the first bit to be set
        to - index of the last bit to be set
        Throws:
        java.lang.IndexOutOfBoundsException - if from is negative, or to is negative, or from is larger than to
      • clear

        public void clear​(int index)
        Sets the bit specified by the index to false.
        Parameters:
        index - the index of the bit to be cleared.
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is negative.
      • clear

        public void clear​(int from,
                          int to)
        Sets the bits from the specified from (inclusive) to the specified to (inclusive) to false.
        Parameters:
        from - index of the first bit to be cleared
        to - index of the last bit to be cleared
        Throws:
        java.lang.IndexOutOfBoundsException - if from is negative, or to is negative, or from is larger than to
      • get

        public boolean get​(int index)
        Returns the value of the bit with the specified index. The value is true if the bit with the index index is currently set in this bit set; otherwise, the result is false.
        Parameters:
        index - the bit index.
        Returns:
        the value of the bit with the specified index.
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is negative.
      • nextSetBit

        public int nextSetBit​(int fromIndex)
        Returns the index of the first bit that is set to true that occurs on or after the specified starting index. If no such bit exists then -1 is returned.

        To iterate over the true bits in a BitSet, use the following loop:

         for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
             // operate on index i here
         }
        Parameters:
        fromIndex - the index to start checking from (inclusive).
        Returns:
        the index of the next set bit.
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is negative.
      • nextClearBit

        public int nextClearBit​(int fromIndex)
        Returns the index of the first bit that is set to false that occurs on or after the specified starting index.
        Parameters:
        fromIndex - the index to start checking from (inclusive).
        Returns:
        the index of the next clear bit.
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is negative.
      • previousSetBit

        public int previousSetBit​(int from)
        Returns the index of the nearest bit that is set to true that occurs on or before the specified starting index. If no such bit exists, or if -1 is given as the starting index, then -1 is returned.
        Parameters:
        from - the index to start checking from (inclusive)
        Returns:
        the index of the previous set bit, or -1 if there is no such bit
        Throws:
        java.lang.IndexOutOfBoundsException - if the specified index is less than -1
      • cardinality

        public int cardinality()
        Returns the number of bits set to true in this bit set
        Returns:
        the number of bits set to true in this bit set
      • size

        public int size()
      • flip

        public void flip()
        Flips all bits: 1 --> 0 and 0 --> 1
      • toString

        public java.lang.String toString()
        Returns a string representation of this bit set. For every index for which this BitSet contains a bit in the set state, the decimal representation of that index is included in the result. Such indices are listed in order from lowest to highest, separated by ", " (a comma and a space) and surrounded by braces, resulting in the usual mathematical notation for a set of integers.

        Overrides the toString method of Object.

        Example:

         BitSet drPepper = new BitSet();
        Now drPepper.toString() returns "{}".

         drPepper.set(2);
        Now drPepper.toString() returns "{2}".

         drPepper.set(4);
         drPepper.set(10);
        Now drPepper.toString() returns "{2, 4, 10}".
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of this bit set.
      • wordIndex

        protected static int wordIndex​(int bitIndex)