java - 如何获取 BitSet 表示的位数?

标签 java bitset

如果我运行以下代码:

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/

相关文章:

java - java的时区问题

java - 将 ImageButton 的图像更改为 Android Gallery 中的图像

java - 具有两个入口点的 Spring Boot 应用程序 : CLI and Web Service

c++ - 似乎无法使用左移或右移

java - 如何通过 Swing 加快图像的放大/缩小速度?

java - 显示对象列表

node.js - Node.js/Express.js 中的 Redis Bitset 操作

c++ - std::bitset<size> 中的可变位长度

java - Java中BitSet的Set操作的时间复杂度是多少?

java - BitSet(JAVA) 在埃拉托斯特尼筛法的实现中抛出 outofBoundsException