簡體   English   中英

在Java中將兩個位集相交到新的BitSet中最快的方法是什么?

[英]What would be the fastest way to intersect two bitsets into a new BitSet in Java?

是否有比這更快的時間:

// 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對象中執行的整數; 當您決定達到最大速度時,您就放棄了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM