Java:计算java.util.BitSet中设置的位数

除了通常的“保持计数器”方法之外,还有任何快速计算BitSet中设置位数的方法吗?

cardinality()方法返回设置位数。

(假设你不想打电话基数())

 int count = 0; for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) { count++; } 

见javadoc

 BitSet B1 = new BitSet(3); B1.set(0); B1.cardinality(); 

输出:

 1