I'm looking for a good Java
BitSet bits1 = new BitSet();
BitSet bits2 = new BitSet();
For the specific problem you mentioned: when you called
bits2.set(1000001), you set the one millionth and first bit to true. Then when you intersected with
bits1, which had the one million, 111 thousand, and 111st bit set, they had no bits in common.
I think what you meant to do was
bits2.set(0); // set the 0th bit bits2.set(6); // set the 6th bit
Does this help clear things up?