有没有比这更快的时间:
// say we alread have BitSet bs1 and bs2
BitSet bs3 = (BitSet) bs1.clone();
bs3.and(bs2);
也许转换为整数并添加为数字然后转换回BitSet
?
有没有比这更快的时间:
// say we alread have BitSet bs1 and bs2
BitSet bs3 = (BitSet) bs1.clone();
bs3.and(bs2);
也许转换为整数并添加为数字然后转换回BitSet
?
我能想到的唯一选择是
Bitset newBitset = new Bitset(bs1.size());
newBitset.or(bs1).and(bs2);
您需要对两者进行计时,看看哪个更快;我的替代方案可能会稍微快一些,因为您没有调用覆盖方法并且您没有进行任何强制转换。
如果你真的需要速度,我猜几乎 BitSet 所做的任何事情都不会像对整数的按位运算一样快——&、| 等。当然,你没有很多按位运算——处理您在 BitSet 对象中执行的整数;当您决定达到最大速度时,您会放弃它。