Class FixedSizeBitSet

java.lang.Object
org.jgroups.util.FixedSizeBitSet
Direct Known Subclasses:
SeqnoList

public class FixedSizeBitSet extends 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.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final int
     
    protected static final int
     
    protected int
     
    protected static final long
     
    protected long[]
     
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    int
    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
    Flips all bits: 1 to 0 and 0 to 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
     
    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
  • Field Details

    • ADDRESS_BITS_PER_WORD

      protected static final int ADDRESS_BITS_PER_WORD
      See Also:
    • BITS_PER_WORD

      protected static final int BITS_PER_WORD
      See Also:
    • WORD_MASK

      protected static final long WORD_MASK
      See Also:
    • words

      protected long[] words
    • size

      protected int size
  • Constructor Details

    • 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:
      NegativeArraySizeException - if the specified initial size is negative
  • Method Details

    • 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:
      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:
      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:
      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:
      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:
      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:
      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:
      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:
      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 to 0 and 0 to 1
    • toString

      public 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 Object
      Returns:
      a string representation of this bit set.
    • wordIndex

      protected static int wordIndex(int bitIndex)