BitSet in java

A BitSet class creates a special type of array that holds bit values. This array can increase in size as needed. This makes it similar to a vector of bits. The BitSet constructors are shown here:

BitSet( )

BitSet(int size)

The first version creates a default object. The second version allows you to specify its initial size (that is, the number of bits that it can hold). All bits are initialized to zero

Table of The Methods Defined by BitSet

MethodDescription
void and(BitSet bitSet)ANDs the contents of the invoking BitSet object with those
 specified by bitSet. The result is placed into the invoking
 object.
  
void andNot(BitSet bitSet)For each 1 bit in bitSet, the corresponding bit in the invoking
 BitSet is cleared.
  
int cardinality( )Returns the number of set bits in the invoking object.
  
void clear( )Zeros all bits.
  
void clear(int index)Zeros the bit specified by index.
void clear(int startIndex,Zeros the bits from startIndex to endIndex–1.
int endIndex) 
Object clone( )Duplicates the invoking BitSet object.
boolean equals(Object bitSet)Returns true if the invoking bit set is equivalent to the one
 passed in bitSet. Otherwise, the method returns false.
  
void flip(int index)Reverses the bit specified by index.
  
void flip(int startIndex,Reverses the bits from startIndex to endIndex–1.
int endIndex) 
  
boolean get(int index)Returns the current state of the bit at the specified index.
  
BitSet get(int startIndex,Returns a BitSet that consists of the bits from startIndex
int endIndex)to endIndex–1. The invoking object is not changed.
  
int hashCode( )Returns the hash code for the invoking object.
  
boolean intersects(BitSet bitSet)Returns true if at least one pair of corresponding bits within
 the invoking object and bitSet are 1.
  
boolean isEmpty( )Returns true if all bits in the invoking object are zero.
  
int 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.
  
int nextClearBit(int startIndex)Returns the index of the next cleared bit (that is, the next
 zero bit), starting from the index specified by startIndex.
 Method Description
 int 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.
   
 void or(BitSet bitSet)ORs the contents of the invoking BitSet object with that
   specified by bitSet. The result is placed into the invoking object.
 void set(int index)Sets the bit specified by index.
   
 void 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.
   
 void set(int startIndex,Sets the bits from startIndex to endIndex–1.
 int endIndex) 
   
 void set(int startIndex,Sets the bits from startIndex to endIndex–1, to the value
 int endIndex, boolean v)passed in v. true sets the bits, false clears the bits.
    
 int size( ) Returns the number of bits in the invoking BitSet object.
   
 String toString( )Returns the string equivalent of the invoking BitSet object.
   
 void xor(BitSet bitSet)XORs the contents of the invoking BitSet object with that
   specified by bitSet. The result is placed into the invoking object.

BitSet Demonstration

import java.util.BitSet;

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("\nInitial pattern in bits2: ");

System.out.println(bits2);

//AND bits bits2.and(bits1); System.out.println("\nbits2 AND bits1: "); System.out.println(bits2);
//OR bits bits2.or(bits1); System.out.println("\nbits2 OR bits1: "); System.out.println(bits2);

//XOR bits

bits2.xor(bits1); System.out.println("\nbits2 XOR bits1: "); System.out.println(bits2);

}

}
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: {}

Leave a Comment