带有尾随零的Java BitSet

时间:2017-03-18 19:27:09

标签: java java-8 bits bitset

如何使用BitSet来表示以0结尾的位表示?

例如,代表" 10100"在BitSet中,我正在做以下事情。

BitSet bits = new BitSet(5);
bits.set(0);
bits.set(2);

基于Java Doc,

  

length() - 返回"逻辑大小"此BitSet:BitSet中最高设置位的索引加一。

     

size() - 返回此BitSet实际使用的空间位数,以表示位值。

因此,对于给定的示例,length()返回" 3"和size()返回" 64"因为BitSet内部使用long。

使用给定的BitSet,如何确定其中的实际位(本例中为10100)?

P.S:我正在研究压缩技术,我不想使用boolean []来表示它,因为数组中的每个条目都需要1个字节。

谢谢!

1 个答案:

答案 0 :(得分:4)

BitSet中,零索引是最小有意义位。你的例子应该是:

BitSet bits = new BitSet(5);
bits.set(2);
bits.set(4);

现在bits.length()按预期返回5