1

有没有比这更快的时间:

// say we alread have BitSet bs1 and bs2
BitSet bs3 = (BitSet) bs1.clone();
bs3.and(bs2);

也许转换为整数并添加为数字然后转换回BitSet

4

2 回答 2

1

我能想到的唯一选择是

Bitset newBitset = new Bitset(bs1.size());
newBitset.or(bs1).and(bs2);

您需要对两者进行计时,看看哪个更快;我的替代方案可能会稍微快一些,因为您没有调用覆盖方法并且您没有进行任何强制转换。

于 2013-04-16T19:38:26.887 回答
0

如果你真的需要速度,我猜几乎 BitSet 所做的任何事情都不会像对整数的按位运算一样快——&、| 等。当然,你没有很多按位运算——处理您在 BitSet 对象中执行的整数;当您决定达到最大速度时,您会放弃它。

于 2013-04-16T19:56:54.607 回答