gpt4 book ai didi

java - Java中有没有一种方法可以获取BitSet中打开的位数?

转载 作者:行者123 更新时间:2023-12-01 08:07:59 25 4
gpt4 key购买 nike

我想获取 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) 。有没有更快的方法来获取打开位的计数?

谢谢

最佳答案

BitSet.cardinality()

返回此 BitSet 中设置为 true 的位数。

http://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html#cardinality()

关于java - Java中有没有一种方法可以获取BitSet中打开的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com