不太明白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
这些尾随零从何而来?谁可以给我解释一下这个?谢谢~~
最佳答案
答案很简单,BitSet
构造函数只是说它会生成足够大的给定大小的东西,实际上它需要一些最匹配的内部大小。
在您的情况下,这是 64 位,请参阅 JavaDoc
关于java - Bitset size() 和 length() 是什么意思,它们之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245981/