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.
| Constructor Summary | ||
| BitSet() Creates a new bit set. |
||
| BitSet(int nbits) Creates a bit set whose initial size is large enough to explicitly
represent bits with indices in the range 0 through
nbits-1. |
| Method Summary | ||
void |
and(BitSet set) Performs a logical AND of this target bit set with the
argument bit set. |
|
void |
andNot(BitSet set) Clears all of the bits in this BitSet whose corresponding
bit is set in the specified BitSet. |
|
int |
cardinality() Returns the number of bits set to true in this
BitSet. |
|
void |
clear() Sets all of the bits in this BitSet to false. |
|
void |
clear(int bitIndex) Sets the bit specified by the index to false. |
|
void |
clear(int fromIndex, int toIndex) Sets the bits from the specified fromIndex (inclusive) to the
specified toIndex (exclusive) to false. |
|
| clone() Cloning this BitSet produces a new BitSet
that is equal to it. |
||
boolean |
equals(Object obj) Compares this object against the specified object. |
|
void |
flip(int bitIndex) Sets the bit at the specified index to the complement of its
current value. |
|
void |
flip(int fromIndex, int toIndex) Sets each bit from the specified fromIndex (inclusive) to the
specified toIndex (exclusive) to the complement of its current
value. |
|
boolean |
get(int bitIndex) Returns the value of the bit with the specified index. |
|
| get(int fromIndex, int toIndex) Returns a new BitSet composed of bits from this BitSet
from fromIndex (inclusive) to toIndex (exclusive). |
||
int |
hashCode() Returns a hash code value for this bit set. |
|
boolean |
intersects(BitSet set) Returns true if the specified BitSet has any bits set to
true that are also set to true in this
BitSet. |
|
boolean |
isEmpty() Returns true if this BitSet contains no bits that are set
to true. |
|
int |
length() Returns the "logical size" of this BitSet: the index of
the highest set bit in the BitSet plus one. |
|
int |
nextClearBit(int fromIndex) Returns the index of the first bit that is set to false
that occurs on or after the specified starting index. |
|
int |
nextSetBit(int fromIndex) Returns the index of the first bit that is set to true
that occurs on or after the specified starting index. |
|
void |
or(BitSet set) Performs a logical OR of this bit set with the bit set
argument. |
|
void |
set(int bitIndex) Sets the bit at the specified index to true. |
|
void |
set(int bitIndex, boolean value) Sets the bit at the specified index to the specified value. |
|
void |
set(int fromIndex, int toIndex) Sets the bits from the specified fromIndex (inclusive) to the
specified toIndex (exclusive) to true. |
|
void |
set(int fromIndex, int toIndex, boolean value) Sets the bits from the specified fromIndex (inclusive) to the
specified toIndex (exclusive) to the specified value. |
|
int |
size() Returns the number of bits of space actually in use by this
BitSet to represent bit values. |
|
| toString() Returns a string representation of this bit set. |
||
void |
xor(BitSet set) Performs a logical XOR of this bit set with the bit set
argument. |
|
| Methods inherited from class java.lang.Object |
| finalize, getClass, notify, notifyAll, wait, wait, wait |
false.0 through
nbits-1. All bits are initially false.true.true.false.false.false.true if the bit with the index bitIndex
is currently set in this BitSet; otherwise, the result
is false.true
that occurs on or after the specified starting index. If no such
bit exists then -1 is returned.
To iterate over the true bits in a BitSet,
use the following loop:
for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
// operate on index i here
}false
that occurs on or after the specified starting index.BitSet: the index of
the highest set bit in the BitSet plus one. Returns zero
if the BitSet contains no set bits.BitSet.BitSet contains no bits that are set
to true.BitSet is empty.BitSet has any bits set to
true that are also set to true in this
BitSet.BitSet to intersect withBitSet intersects
the specified BitSet.BitSet.BitSet.true if and only if it both initially
had the value true and the corresponding bit in the
bit set argument also had the value true.true if and only if it either already had the
value true or the corresponding bit in the bit set
argument has the value true.true if and only if one of the following
statements holds:
true, and the
corresponding bit in the argument has the value false.
false, and the
corresponding bit in the argument has the value true.
BitSet whose corresponding
bit is set in the specified BitSet.BitSet with which to mask this
BitSet.BitSet. The algorithm used to compute it may
be described as follows.
Suppose the bits in the BitSet were to be stored
in an array of long integers called, say,
words, in such a manner that bit k is
set in the BitSet (for nonnegative values of
k) if and only if the expression
((k>>6) < words.length) && ((words[k>>6] & (1L << (bit & 0x3F))) != 0)is true. Then the following definition of the
hashCode
method would be a correct implementation of the actual algorithm:
public int hashCode() {
long h = 1234;
for (int i = words.length; --i >= 0; ) {
h ^= words[i] * (i + 1);
}
return (int)((h >> 32) ^ h);
}
Note that the hash code values change if the set of bits is altered.
Overrides the hashCode method of Object.
BitSet to represent bit values.
The maximum element in the set is the size - 1st element.true if and only if the argument is
not null and is a Bitset object that has
exactly the same set of bits set to true as this bit
set. That is, for every nonnegative int index k,
((BitSet)obj).get(k) == this.get(k)must be true. The current sizes of the two bit sets are not compared.
Overrides the equals method of Object.
true if the objects are the same;
false otherwise.BitSet produces a new BitSet
that is equal to it.
The clone of the bit set is another bit set that has exactly the
same bits set to true as this bit set.
Overrides the clone method of Object.
BitSet contains a bit in the set
state, the decimal representation of that index is included in
the result. Such indices are listed in order from lowest to
highest, separated by ", " (a comma and a space) and
surrounded by braces, resulting in the usual mathematical
notation for a set of integers.
Overrides the toString method of Object.
Example:
BitSet drPepper = new BitSet();Now
drPepper.toString() returns "{}".
drPepper.set(2);Now
drPepper.toString() returns "{2}".
drPepper.set(4); drPepper.set(10);Now
drPepper.toString() returns "{2, 4, 10}".