【发布时间】:2013-11-08 19:40:54
【问题描述】:
我想获取BitSet 中打开的位数。
这是一个计算偶数的程序。当然,还有更简单的方法来计算偶数,这只是为了了解如何使用BitSets。
这是代码:
Public class Test {
public static void main(String[] args) {
BitSet b = new BitSet();
for (int i=0; i<10;i++){
b.set(i);
}
System.out.println(b);
System.out.println("even numbers ");
int i =0;
while(i<10){
if (i%2!=0){
b.clear(i);
}
i++;
}
System.out.println(b);
System.out.println(b.length());
}
}
output:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
even numbers
{0, 2, 4, 6, 8}
9
有没有办法获取开启的位数,比如上面的例子应该是5。我总是可以遍历BitSet 并检查(b.set(i)) 是否为o(n)。
有什么更快的方法来计算打开的位数?
谢谢
【问题讨论】:
标签: java bitset variable-length