将两个bitset交叉到Java中的新BitSet的最快方法是什么?

时间:2013-04-16 19:34:35

标签: java performance bitset set-intersection

是否有比这更快的东西:

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

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

2 个答案:

答案 0 :(得分:1)

我能想到的唯一选择是

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

你需要给两个人计时,看看哪个更快;我的替代方案可能稍微快一些,因为你没有调用一个重写方法,而且你没有做任何演员。

答案 1 :(得分:0)

如果你真的需要速度,我猜我几乎没有任何BitSet会像整数上的按位操作一样快 - &,|等等。当然,你没有多少操作您在BitSet对象中执行的按位处理的整数;当你决定采用最高速度时,你就放弃了。