对于以0结尾的位表示,我该如何使用BitSet?
例如,为了在BitSet中表示“ 10100”,我正在执行以下操作.
BitSet bits = new BitSet(5);
bits.set(0);
bits.set(2);
基于Java文档,
length() – Returns the “logical size” of this BitSet: the index of the highest set bit in the BitSet plus one.
size() – Returns the number of bits of space actually in use by this BitSet to represent bit values.
因此,对于给定的示例,由于BitSet在内部与long配合使用,因此length()返回“ 3”,size()返回“ 64”.
使用给定的BitSet,如何确定其中的实际位(在这种情况下为10100)?
附注:我正在研究压缩技术,并且我不想使用boolean []来表示它,因为数组中的每个条目都可以占用1个字节.
谢谢!
解决方法:
在BitSet中,零索引是最低有效位.您的示例应为:
BitSet bits = new BitSet(5);
bits.set(2);
bits.set(4);
现在bits.length()返回5,如预期的那样.