Class BitSet

java.lang.Object
java.util.BitSet

public class BitSet extends Object
The BitSet class implements a bit field. Each element in a BitSet can be on(1) or off(0). A BitSet is created with a given size and grows if this size is exceeded. Growth is always rounded to a 64 bit boundary.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a new BitSet with size equal to 64 bits.
    BitSet(int nbits)
    Create a new BitSet with size equal to nbits.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    and(BitSet bs)
    Performs the logical AND of this BitSet with another BitSet.
    void
    Clears all bits in the receiver which are also set in the parameter BitSet.
    int
    Returns the number of bits that are true in this BitSet.
    void
    Clears all the bits in this BitSet.
    void
    clear(int pos)
    Clears the bit at index pos.
    void
    clear(int pos1, int pos2)
    Clears the bits starting from pos1 to pos2.
    boolean
    Compares the argument to this BitSet and returns whether they are equal.
    void
    flip(int pos)
    Flips the bit at index pos.
    void
    flip(int pos1, int pos2)
    Flips the bits starting from pos1 to pos2.
    boolean
    get(int pos)
    Retrieves the bit at index pos.
    get(int pos1, int pos2)
    Retrieves the bits starting from pos1 to pos2 and returns back a new bitset made of these bits.
    int
    Computes the hash code for this BitSet.
    boolean
    Checks if these two BitSets have at least one bit set to true in the same position.
    boolean
    Returns true if all the bits in this BitSet are set to false.
    int
    Returns the number of bits up to and including the highest bit set.
    int
    nextClearBit(int pos)
    Returns the position of the first bit that is false on or after pos.
    int
    nextSetBit(int pos)
    Returns the position of the first bit that is true on or after pos.
    void
    or(BitSet bs)
    Performs the logical OR of this BitSet with another BitSet.
    void
    set(int pos)
    Sets the bit at index pos to 1.
    void
    set(int pos, boolean val)
    Sets the bit at index pos to val.
    void
    set(int pos1, int pos2)
    Sets the bits starting from pos1 to pos2.
    void
    set(int pos1, int pos2, boolean val)
    Sets the bits starting from pos1 to pos2 to the given val.
    int
    Returns the number of bits this BitSet has.
    Returns a string containing a concise, human-readable description of the receiver.
    void
    xor(BitSet bs)
    Performs the logical XOR of this BitSet with another BitSet.

    Methods inherited from class Object

    clone, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

  • Method Details

    • equals

      public boolean equals(Object obj)
      Compares the argument to this BitSet and returns whether they are equal. The object must be an instance of BitSet with the same bits set.
      Overrides:
      equals in class Object
      Parameters:
      obj - the BitSet object to compare.
      Returns:
      a boolean indicating whether or not this BitSet and obj are equal.
      See Also:
    • hashCode

      public int hashCode()
      Computes the hash code for this BitSet. If two BitSets are equal the have to return the same result for hashCode().
      Overrides:
      hashCode in class Object
      Returns:
      the int representing the hash code for this bit set.
      See Also:
    • get

      public boolean get(int pos)
      Retrieves the bit at index pos. Grows the BitSet if pos > size.
      Parameters:
      pos - the index of the bit to be retrieved.
      Returns:
      true if the bit at pos is set, false otherwise.
      Throws:
      IndexOutOfBoundsException - if pos is negative.
      See Also:
    • get

      public BitSet get(int pos1, int pos2)
      Retrieves the bits starting from pos1 to pos2 and returns back a new bitset made of these bits. Grows the BitSet if pos2 > size.
      Parameters:
      pos1 - beginning position.
      pos2 - ending position.
      Returns:
      new bitset of the range specified.
      Throws:
      IndexOutOfBoundsException - if pos1 or pos2 is negative, or if pos2 is smaller than pos1.
      See Also:
    • set

      public void set(int pos)
      Sets the bit at index pos to 1. Grows the BitSet if pos > size.
      Parameters:
      pos - the index of the bit to set.
      Throws:
      IndexOutOfBoundsException - if pos is negative.
      See Also:
    • set

      public void set(int pos, boolean val)
      Sets the bit at index pos to val. Grows the BitSet if pos > size.
      Parameters:
      pos - the index of the bit to set.
      val - value to set the bit.
      Throws:
      IndexOutOfBoundsException - if pos is negative.
      See Also:
    • set

      public void set(int pos1, int pos2)
      Sets the bits starting from pos1 to pos2. Grows the BitSet if pos2 > size.
      Parameters:
      pos1 - beginning position.
      pos2 - ending position.
      Throws:
      IndexOutOfBoundsException - if pos1 or pos2 is negative, or if pos2 is smaller than pos1.
      See Also:
    • set

      public void set(int pos1, int pos2, boolean val)
      Sets the bits starting from pos1 to pos2 to the given val. Grows the BitSet if pos2 > size.
      Parameters:
      pos1 - beginning position.
      pos2 - ending position.
      val - value to set these bits.
      Throws:
      IndexOutOfBoundsException - if pos1 or pos2 is negative, or if pos2 is smaller than pos1.
      See Also:
    • clear

      public void clear()
      Clears all the bits in this BitSet.
      See Also:
    • clear

      public void clear(int pos)
      Clears the bit at index pos. Grows the BitSet if pos > size.
      Parameters:
      pos - the index of the bit to clear.
      Throws:
      IndexOutOfBoundsException - if pos is negative.
      See Also:
    • clear

      public void clear(int pos1, int pos2)
      Clears the bits starting from pos1 to pos2. Grows the BitSet if pos2 > size.
      Parameters:
      pos1 - beginning position.
      pos2 - ending position.
      Throws:
      IndexOutOfBoundsException - if pos1 or pos2 is negative, or if pos2 is smaller than pos1.
      See Also:
    • flip

      public void flip(int pos)
      Flips the bit at index pos. Grows the BitSet if pos > size.
      Parameters:
      pos - the index of the bit to flip.
      Throws:
      IndexOutOfBoundsException - if pos is negative.
      See Also:
    • flip

      public void flip(int pos1, int pos2)
      Flips the bits starting from pos1 to pos2. Grows the BitSet if pos2 > size.
      Parameters:
      pos1 - beginning position.
      pos2 - ending position.
      Throws:
      IndexOutOfBoundsException - if pos1 or pos2 is negative, or if pos2 is smaller than pos1.
      See Also:
    • intersects

      public boolean intersects(BitSet bs)
      Checks if these two BitSets have at least one bit set to true in the same position.
      Parameters:
      bs - BitSet used to calculate the intersection.
      Returns:
      true if bs intersects with this BitSet, false otherwise.
    • and

      public void and(BitSet bs)
      Performs the logical AND of this BitSet with another BitSet. The values of this BitSet are changed accordingly.
      Parameters:
      bs - BitSet to AND with.
      See Also:
    • andNot

      public void andNot(BitSet bs)
      Clears all bits in the receiver which are also set in the parameter BitSet. The values of this BitSet are changed accordingly.
      Parameters:
      bs - BitSet to ANDNOT with.
    • or

      public void or(BitSet bs)
      Performs the logical OR of this BitSet with another BitSet. The values of this BitSet are changed accordingly.
      Parameters:
      bs - BitSet to OR with.
      See Also:
    • xor

      public void xor(BitSet bs)
      Performs the logical XOR of this BitSet with another BitSet. The values of this BitSet are changed accordingly.
      Parameters:
      bs - BitSet to XOR with.
      See Also:
    • size

      public int size()
      Returns the number of bits this BitSet has.
      Returns:
      the number of bits contained in this BitSet.
      See Also:
    • length

      public int length()
      Returns the number of bits up to and including the highest bit set.
      Returns:
      the length of the BitSet.
    • toString

      public String toString()
      Returns a string containing a concise, human-readable description of the receiver.
      Overrides:
      toString in class Object
      Returns:
      a comma delimited list of the indices of all bits that are set.
    • nextSetBit

      public int nextSetBit(int pos)
      Returns the position of the first bit that is true on or after pos.
      Parameters:
      pos - the starting position (inclusive).
      Returns:
      -1 if there is no bits that are set to true on or after pos.
    • nextClearBit

      public int nextClearBit(int pos)
      Returns the position of the first bit that is false on or after pos.
      Parameters:
      pos - the starting position (inclusive).
      Returns:
      the position of the next bit set to false, even if it is further than this BitSet's size.
    • isEmpty

      public boolean isEmpty()
      Returns true if all the bits in this BitSet are set to false.
      Returns:
      true if the BitSet is empty, false otherwise.
    • cardinality

      public int cardinality()
      Returns the number of bits that are true in this BitSet.
      Returns:
      the number of true bits in the set.