繁体   English   中英

为什么你会在java中使用BitSet而不是布尔数组(在Java中)?

[英]Why would you use a BitSet in java as opposed to an array of booleans (in Java)?

除了可用方法的不同之外,为什么有人会使用BitSet而不是布尔数组呢? 某些操作的性能是否更好?

您可以这样做以节省空间: boolean占用整个字节,因此N boolean的数组将占用具有相同条目数的BitSet空间的八倍。

执行速度是另一个密切相关的问题:您可以更快地生成一个联合或多个BitSet对象的交集,因为这些操作可以由CPU按位32位进行按位AND和OR执行。

除了@dasblinkenlight注意到的空间节省之外,BitSet还具有根据需要增长的优势。 如果您事先不知道需要多少位,或者高编号位是稀疏的并且很少使用,(例如,您正在检测文档中存在哪些Unicode字符,并且您希望允许不常见的“外来”字符> 128但你知道它们很少见)BitSet会节省更多的内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM