除了可用方法的不同之外,为什么有人会使用BitSet而不是布尔数组呢?某些操作的性能是否更好?
答案 0 :(得分:8)
您可以这样做以节省空间:boolean
占用整个字节,因此N
boolean
的数组将占用BitSet
空间的八倍具有相同数量的条目。
执行速度是另一个密切相关的问题:您可以更快地生成一个联合或多个BitSet
对象的交集,因为这些操作可以由CPU按位32位进行按位AND和OR执行。 / p>
答案 1 :(得分:1)
除了@dasblinkenlight注意到的空间节省之外,BitSet还具有根据需要增长的优势。如果您事先不知道需要多少位,或者高编号位稀疏且很少使用(例如,您正在检测文档中存在哪些Unicode字符,并且您希望允许不常见的“外来”字符> ; 128但你知道它们很少见)BitSet会节省更多的内存。