This class implements a vector of bits that grows as needed. Each component of the bit set has a

`boolean`

value. The bits of a

`BitSet`

are indexed by nonnegative integers. Individual indexed bits can be examined, set, or cleared. One

`BitSet`

may be used to modify the contents of another

`BitSet`

through logical AND, logical inclusive OR, and logical exclusive OR operations.

By default, all bits in the set initially have the value `false`

.

Every bit set has a current size, which is the number of bits of space currently in use by the bit set. Note that the size is related to the implementation of a bit set, so it may change with implementation. The length of a bit set relates to logical length of a bit set and is defined independently of implementation.

Unless otherwise noted, passing a null parameter to any of the methods in a `BitSet`

will result in a `NullPointerException`

.

A `BitSet`

is not safe for multithreaded use without external synchronization.