因此,根据this question,有两种方法可以查看BitSet
的大小。
size()
,这是旧的,实际上没有用。我同意这一点。执行以下操作后,大小为64
:length()
,它返回最高设置位的索引。在上面的示例中,length()
将返回0
。这在某种程度上很有用,但是并不能准确反射(reflect)BitSet
在前导零的情况下应该表示的位数。 我要处理的信息很少(如果有的话)均匀地分成8位字节,并且开头的
0
对我来说与1
同样重要。我有一些333位长的数据字段,有些是20位,依此类推。有没有更好的方法来处理Java中可跟踪前导零的位级详细信息?否则,可以这么说,我将不得不“自己动手”。关于这一点,我已经有了一些想法,但是如果可能的话,我宁愿不要重新发明轮子。
最佳答案
我遇到了同样的问题,但是没有找到内置的解决方案,但是进行一些更改并不昂贵。
public class MyBitSet extends BitSet {
int realSize;
public MyBitSet(int realsize) {
// TODO Auto-generated constructor stub
super(realsize);
this.realSize=realsize;
}
public int realSize()
{
return this.realSize;
}
}