基于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