java.util
BitSet bs = new BitSet(10);
// 实际长度是64
int size = bs.size();
System.out.println("size = " + size);
// 逻辑长度(也就是最后一个1的小标+1)
int length = bs.length();
System.out.println("length = " + length);
bs.set(1);
bs.set(3);
bs.set(5);
length = bs.length();
System.out.println("length = " + length);
size = 64
length = 0
length = 6
BitSet bs = new BitSet(10);
bs.set(1);
bs.set(3);
bs.set(5);
bs.stream().boxed().forEach(System.out::println);
1
3
5
BitSet bs = new BitSet(10);
bs.set(1);
bs.set(3);
bs.set(5);
// todo 写法有问题
for (int i = bs.nextClearBit(0); i >= 0 && i < bs.length(); i = bs.nextClearBit(i + 1)) {
// operate on index i here
if (i == Integer.MAX_VALUE) {
break; // or (i+1) would overflow
}
System.out.println("false 下标:" + i);
}
false 下标:0
false 下标:2
false 下标:4
注意: