Question

Other than the difference in methods available, why would someone use a BitSet as opposed to an array of booleans? Is performance better for some operations?

Was it helpful?

Solution

You would do it to save space: a boolean occupies a whole byte, so an array of N booleans would occupy eight times the space of a BitSet with the equivalent number of entries.

Execution speed is another closely related concern: you can produce a union or an intersection of several BitSet objects faster, because these operations can be performed by CPU as bitwise ANDs and ORs on 32 bits at a time.

OTHER TIPS

In addition to the space savings noted by @dasblinkenlight, a BitSet has the advantage that it will grow as needed. If you do not know beforehand how many bits will be needed, or the high numbered bits are sparse and rarely used, (e.g. you are detecting which Unicode characters are present in a document and you want to allow for the unusual "foreign" ones > 128 but you know that they will be rare) a BitSet will save even more memory.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top