【发布时间】:2011-06-20 11:16:25
【问题描述】:
除了通常的“保留计数器”方法之外,还有什么快速计算 BitSet 中设置位数的方法吗?
【问题讨论】:
除了通常的“保留计数器”方法之外,还有什么快速计算 BitSet 中设置位数的方法吗?
【问题讨论】:
cardinality() 方法返回设置的位数。
【讨论】:
long[],并为每个位调用Long#bitCount。
(假设你不想调用 cardinality())
int count = 0;
for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
count++;
}
【讨论】:
BitSet B1 = new BitSet(3);
B1.set(0);
B1.cardinality();
输出:
1
【讨论】: