基於Javadoc,下面的代碼應該打印6
。然而,它沒有明顯的原因輸出3
。Java BitSet奇怪的行爲
import java.util.*;
public class BitSetStrangeness{
public static void main(String[] args){
BitSet foo = new BitSet();
int[] arbitrary = new int[] {
0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1
};
for (int i = 0; i < arbitrary.length; i++)
if (arbitrary[i] == 1) foo.set(i);
else foo.clear(i);
System.out.println(foo.get(15,21).length());
}
}
任何人都可以解釋)爲什麼我看到這種行爲和b)如何我可以修改代碼來解決它,這樣提取的比特集的長度是6,而不是3呢?
謝謝你的回答。 我試圖把BitSet看作是一串比特,我期待fromIndex和toIndex的get函數的行爲類似於子串函數。 – merlin2011 2013-05-06 07:15:55