对于以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,如预期的那样.
标签:bitset,java-8,bits,java 来源: https://codeday.me/bug/20191026/1934257.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。