BitSet class methods in Java



The BitSet class creates a special type of array that holds bit values. The BitSet array can increase in size as needed.

Following are the methods of the BitSet class −

Sr.NoMethod & Description
1void and(BitSet bitSet)
ANDs the contents of the invoking BitSet object with those specified by bitSet. The result is placed into the invoking object.
2void andNot(BitSet bitSet)
For each 1 bit in bitSet, the corresponding bit in the invoking BitSet is cleared.
3int cardinality( )
Returns the number of set bits in the invoking object.
4void clear( )
Zeros all bits.
5void clear(int index)
Zeros the bit specified by index.
6void clear(int startIndex, int endIndex)
Zeros the bits from startIndex to endIndex.
7Object clone( )
Duplicates the invoking BitSet object.
8boolean equals(Object bitSet)
Returns true if the invoking bit set is equivalent to the one passed in bitSet. Otherwise, the method returns false.
9void flip(int index)
Reverses the bit specified by the index.
10void flip(int startIndex, int endIndex)
Reverses the bits from startIndex to endIndex.
11boolean get(int index)
Returns the current state of the bit at the specified index.
12BitSet get(int startIndex, int endIndex)
Returns a BitSet that consists of the bits from startIndex to endIndex. The invoking object is not changed.
13int hashCode( )
Returns the hash code for the invoking object.
14boolean intersects(BitSet bitSet)
Returns true if at least one pair of corresponding bits within the invoking object and bitSet are 1.
15boolean isEmpty( )
Returns true if all bits in the invoking object are zero.
16int length( )
Returns the number of bits required to hold the contents of the invoking BitSet. This value is determined by the location of the last 1 bit.
17int nextClearBit(int startIndex)
Returns the index of the next cleared bit, (that is, the next zero bit), starting from the index specified by startIndex.
18int nextSetBit(int startIndex)
Returns the index of the next set bit (that is, the next 1 bit), starting from the index specified by startIndex. If no bit is set, -1 is returned.
19void or(BitSet bitSet)
ORs the contents of the invoking BitSet object with that specified by bitSet. The result is placed into the invoking object.
20void set(int index)
Sets the bit specified by index.
21void set(int index, boolean v)
Sets the bit specified by index to the value passed in v. True sets the bit, false clears the bit.
22void set(int startIndex, int endIndex)
Sets the bits from startIndex to endIndex.
23void set(int startIndex, int endIndex, boolean v)
Sets the bits from startIndex to endIndex, to the value passed in v. true sets the bits, false clears the bits.
24int size( )
Returns the number of bits in the invoking BitSet object.
25String toString( )
Returns the string equivalent of the invoking BitSet object.
26void xor(BitSet bitSet)
XORs the contents of the invoking BitSet object with that specified by bitSet. The result is placed into the invoking object.

Let us now see an example wherein we are working on BitSet AND(), OR(), & XOR() methods −

Example

import java.util.BitSet;
public class BitSetDemo {
   public static void main(String args[]) {
      BitSet bits1 = new BitSet(16);
      BitSet bits2 = new BitSet(16);
      // set some bits
      for(int i = 0; i < 16; i++) {
         if((i % 2) == 0) bits1.set(i);
         if((i % 5) != 0) bits2.set(i);
      }
      System.out.println("Initial pattern in bits1: ");
      System.out.println(bits1);
      System.out.println("
Initial pattern in bits2: ");       System.out.println(bits2);       // AND bits       bits2.and(bits1);       System.out.println("
bits2 AND bits1: ");       System.out.println(bits2);       // OR bits       bits2.or(bits1);       System.out.println("
bits2 OR bits1: ");       System.out.println(bits2);       // XOR bits       bits2.xor(bits1);       System.out.println("
bits2 XOR bits1: ");       System.out.println(bits2);    } }

Output

Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
bits2 AND bits1:
{2, 4, 6, 8, 12, 14}
bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
bits2 XOR bits1:
{}

Advertisements