如果我运行以下代码:
BitSet test = new BitSet(20);
System.out.println("Bitset size is " + test.size());
System.out.println("Bitset length is " + test.length());
我得到输出:
Bitset size is 64
Bitset length is 0
现在我仔细观察了documentation,这是有道理的。 (前者获取包括实现开销在内的大小,后者是最后设置的位,全部默认为 false),但这不是我想要的。
由于我实际使用的 BitSet 可以具有不同的长度,因此我希望能够获取所表示的位数(忽略它们是否已设置)。有没有办法做到这一点(希望使用内置方法)?
我意识到我可以尝试翻转所有位,然后进行长度操作,或者通过跟踪我用来实例化 BitSet 的变量,但我觉得两者都需要几行注释来说明我的原因,并且我希望得到一些结果更多的 self 记录。
最佳答案
BitSet 会自动扩展至足以表示其中最高位集的大小;初始大小只是一个关于您打算使用多少位的提示。所以你提出的问题没有意义。
关于java - 如何获取 BitSet 表示的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371585/