我不太明白在BitSet
中size()
和length()
的不同含义。请查看下面的代码:
public class Sandbox {
public static void main(String argv[])
{
BitSet bitSet1 = new BitSet(16);
bitSet1.set(0);
bitSet1.set(8);
bitSet1.set(15);
displayBitSet(bitSet1);
}
static void displayBitSet(BitSet bitSet)
{
for(int i=0;i<bitSet.size();i++)
{
boolean bit = bitSet.get(i);
System.out.print(bit?1:0);
}
System.out.println(" "+bitSet.size()+" "+bitSet.length());
}
}
输出结果如下:
1000000010000001000000000000000000000000000000000000000000000000 64 16
我想我会得到类似这样的东西
1000000010000001 16 16
这些末尾的零从哪里来?有人能给我解释一下吗?谢谢~~
for(int i=0;i<bitSet.length();i++)
。但是size()
仍然会返回64。你使用的是64位机器吗? - jlordobitSet1.set(28);
会导致错误吗? - jlordo