|
|||||||||
| Home >> All >> joelib >> [ util overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
joelib.util
Class BitSet14

java.lang.Objectjoelib.util.BitSet14
- All Implemented Interfaces:
- java.lang.Cloneable, java.io.Serializable
- Direct Known Subclasses:
- JOEBitVec
- public class BitSet14
- extends java.lang.Object
- implements java.lang.Cloneable, java.io.Serializable
- extends java.lang.Object
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 BitSet14 are indexed by nonnegative integers.
Individual indexed bits can be examined, set, or cleared. One
BitSet14 may be used to modify the contents of another
BitSet14 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 BitSet14 will result in a
NullPointerException.
A BitSet14 is not safe for multithreaded use without
external synchronization.
- Since:
- JDK1.0
- Version:
- 1.54, 12/03/01
| Field Summary | |
private static int |
ADDRESS_BITS_PER_UNIT
|
private static int |
BIT_INDEX_MASK
|
private long[] |
bits
The bits in this BitSet14. |
private static int |
BITS_PER_UNIT
|
private static long |
serialVersionUID
|
private static byte[] |
trailingZeroTable
|
private int |
unitsInUse
The number of units in the logical size of this BitSet14. |
private static long |
WORD_MASK
|
| Constructor Summary | |
BitSet14()
Creates a new bit set. |
|
BitSet14(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(BitSet14 set)
Performs a logical AND of this target bit set with the argument bit set. |
void |
andNot(BitSet14 set)
Clears all of the bits in this BitSet14 whose corresponding
bit is set in the specified BitSet14. |
private static long |
bit(int bitIndex)
Given a bit index, return a unit that masks that bit in its unit. |
private static int |
bitCount(long val)
Returns the number of bits set in val. |
private static int |
bitLen(int w)
bitLen(val) is the number of bits in val. |
private static long |
bitsLeftOf(int x)
Returns a long that has all the bits that are more significant than or equal to the specified index set to 1. |
private static long |
bitsRightOf(int x)
Returns a long that has all bits that are less significant than the specified index set to 1. |
int |
cardinality()
Returns the number of bits set to true in this BitSet14. |
void |
clear()
Sets all of the bits in this BitSet14 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. |
java.lang.Object |
clone()
Cloning this BitSet14 produces a new BitSet14
that is equal to it. |
private void |
ensureCapacity(int unitsRequired)
Ensures that the BitSet14 can hold enough units. |
boolean |
equals(java.lang.Object obj)
Compares this object against the specified object. |
void |
flip(int bitIndex)
Sets the bit at the specified index to 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. |
BitSet14 |
get(int fromIndex,
int toIndex)
Returns a new BitSet14 composed of bits from this BitSet14 from fromIndex(inclusive) to toIndex(exclusive). |
private long |
getBits(int j)
Returns the unit of this bitset at index j as if this bitset had an infinite amount of storage. |
int |
hashCode()
Returns a hash code value for this bit set. |
boolean |
intersects(BitSet14 set)
Returns true if the specified BitSet14 has any bits set to
true that are also set to true in this
BitSet14. |
boolean |
isEmpty()
Returns true if this BitSet14 contains no bits that are set
to true. |
int |
length()
Returns the "logical size" of this BitSet14: the index of
the highest set bit in the BitSet14 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(BitSet14 set)
Performs a logical OR of this bit set with the bit set argument. |
private void |
readObject(java.io.ObjectInputStream in)
This override of readObject makes sure unitsInUse is set properly when deserializing a bitset |
private void |
recalculateUnitsInUse()
Set the field unitsInUse with the logical size in units of the bit set. |
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 BitSet14 to represent bit values. |
java.lang.String |
toString()
Returns a string representation of this bit set. |
private static int |
trailingZeroCnt(long val)
|
private static int |
unitIndex(int bitIndex)
Given a bit index return unit index containing it. |
void |
xor(BitSet14 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 |
| Field Detail |
ADDRESS_BITS_PER_UNIT
private static final int ADDRESS_BITS_PER_UNIT
- See Also:
- Constant Field Values
BITS_PER_UNIT
private static final int BITS_PER_UNIT
- See Also:
- Constant Field Values
BIT_INDEX_MASK
private static final int BIT_INDEX_MASK
- See Also:
- Constant Field Values
WORD_MASK
private static final long WORD_MASK
- See Also:
- Constant Field Values
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
trailingZeroTable
private static final byte[] trailingZeroTable
bits
private long[] bits
- The bits in this BitSet14. The ith bit is stored in bits[i/64] at
bit position i % 64 (where bit position 0 refers to the least
significant bit and 63 refers to the most significant bit).
INVARIANT: The words in bits[] above unitInUse-1 are zero.
unitsInUse
private transient int unitsInUse
- The number of units in the logical size of this BitSet14.
INVARIANT: unitsInUse is nonnegative.
INVARIANT: bits[unitsInUse-1] is nonzero unless unitsInUse is zero.
| Constructor Detail |
BitSet14
public BitSet14()
- Creates a new bit set. All bits are initially
false.
BitSet14
public BitSet14(int nbits)
- Creates a bit set whose initial size is large enough to explicitly
represent bits with indices in the range
0throughnbits-1. All bits are initiallyfalse.
| Method Detail |
isEmpty
public boolean isEmpty()
- Returns true if this
BitSet14contains no bits that are set totrue.- Since:
- 1.4
and
public void and(BitSet14 set)
- Performs a logical AND of this target bit set with the
argument bit set. This bit set is modified so that each bit in it
has the value
trueif and only if it both initially had the valuetrueand the corresponding bit in the bit set argument also had the valuetrue.
andNot
public void andNot(BitSet14 set)
- Clears all of the bits in this
BitSet14whose corresponding bit is set in the specifiedBitSet14.- Since:
- JDK1.2
cardinality
public int cardinality()
- Returns the number of bits set to true in this
BitSet14.- Since:
- 1.4
clear
public void clear(int bitIndex)
- Sets the bit specified by the index to
false.- Since:
- JDK1.0
clear
public void clear(int fromIndex,
int toIndex)
- Sets the bits from the specified fromIndex(inclusive) to the
specified toIndex(exclusive) to
false.- Since:
- 1.4
clear
public void clear()
- Sets all of the bits in this BitSet14 to
false.- Since:
- 1.4
clone
public java.lang.Object clone()
- Cloning this
BitSet14produces a newBitSet14that is equal to it. The clone of the bit set is another bit set that has exactly the same bits set totrueas this bit set and the same current size.Overrides the
clonemethod ofObject.
equals
public boolean equals(java.lang.Object obj)
- Compares this object against the specified object.
The result is
trueif and only if the argument is notnulland is aBitsetobject that has exactly the same set of bits set totrueas this bit set. That is, for every nonnegativeintindexk,((BitSet14)obj).get(k) == this.get(k)
must be true. The current sizes of the two bit sets are not compared.Overrides the
equalsmethod ofObject.
flip
public void flip(int bitIndex)
- Sets the bit at the specified index to to the complement of its
current value.
- Since:
- 1.4
flip
public 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.
- Since:
- 1.4
get
public boolean get(int bitIndex)
- Returns the value of the bit with the specified index. The value
is
trueif the bit with the indexbitIndexis currently set in thisBitSet14; otherwise, the result isfalse.
get
public BitSet14 get(int fromIndex, int toIndex)
- Returns a new BitSet14 composed of bits from this BitSet14
from fromIndex(inclusive) to toIndex(exclusive).
- Since:
- 1.4
hashCode
public int hashCode()
- Returns a hash code value for this bit set. The has code
depends only on which bits have been set within this
BitSet14. The algorithm used to compute it may be described as follows.Suppose the bits in the
BitSet14were to be stored in an array oflongintegers called, say,bits, in such a manner that bitkis set in theBitSet14(for nonnegative values ofk) if and only if the expression((k>>6) < bits.length) && ((bits[k>>6] & (1L << (bit & 0x3F))) != 0)
is true. Then the following definition of thehashCodemethod would be a correct implementation of the actual algorithm:public int hashCode() { long h = 1234; for (int i = bits.length; --i >= 0; ) { h ^= bits[i] * (i + 1); } return (int)((h >> 32) ^ h); }Note that the hash code values change if the set of bits is altered.Overrides the
hashCodemethod ofObject.
intersects
public boolean intersects(BitSet14 set)
- Returns true if the specified
BitSet14has any bits set totruethat are also set totruein thisBitSet14.- Since:
- 1.4
length
public int length()
- Returns the "logical size" of this
BitSet14: the index of the highest set bit in theBitSet14plus one. Returns zero if theBitSet14contains no set bits.- Since:
- 1.2
nextClearBit
public int nextClearBit(int fromIndex)
- Returns the index of the first bit that is set to
falsethat occurs on or after the specified starting index.- Since:
- 1.4
nextSetBit
public int nextSetBit(int fromIndex)
- Returns the index of the first bit that is set to
truethat occurs on or after the specified starting index. If no such bit exists then -1 is returned. To iterate over thetruebits in aBitSet14, use the following loop: for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) { // operate on index i here }- Since:
- 1.4
or
public void or(BitSet14 set)
- Performs a logical OR of this bit set with the bit set
argument. This bit set is modified so that a bit in it has the
value
trueif and only if it either already had the valuetrueor the corresponding bit in the bit set argument has the valuetrue.
set
public void set(int bitIndex)
- Sets the bit at the specified index to
true.- Since:
- JDK1.0
set
public void set(int bitIndex,
boolean value)
- Sets the bit at the specified index to the specified value.
- Since:
- 1.4
set
public void set(int fromIndex,
int toIndex)
- Sets the bits from the specified fromIndex(inclusive) to the
specified toIndex(exclusive) to
true.- Since:
- 1.4
set
public 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.
- Since:
- 1.4
size
public int size()
- Returns the number of bits of space actually in use by this
BitSet14to represent bit values. The maximum element in the set is the size - 1st element.
toString
public java.lang.String toString()
- Returns a string representation of this bit set. For every index
for which this
BitSet14contains 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
toStringmethod ofObject.Example:
BitSet14 drPepper = new BitSet14();
NowdrPepper.toString()returns "{}".drPepper.set(2);
NowdrPepper.toString()returns "{2}".drPepper.set(4); drPepper.set(10);
NowdrPepper.toString()returns "{2, 4, 10}".
xor
public void xor(BitSet14 set)
- Performs a logical XOR of this bit set with the bit set
argument. This bit set is modified so that a bit in it has the
value
trueif and only if one of the following statements holds:- The bit initially has the value
true, and the corresponding bit in the argument has the valuefalse. - The bit initially has the value
false, and the corresponding bit in the argument has the valuetrue.
- The bit initially has the value
bit
private static long bit(int bitIndex)
- Given a bit index, return a unit that masks that bit in its unit.
bitCount
private static int bitCount(long val)
- Returns the number of bits set in val.
For a derivation of this algorithm, see
"Algorithms and data structures with applications to
graphics and geometry", by Jurg Nievergelt and Klaus Hinrichs,
Prentice Hall, 1993.
bitLen
private static int bitLen(int w)
- bitLen(val) is the number of bits in val.
bitsLeftOf
private static long bitsLeftOf(int x)
- Returns a long that has all the bits that are more significant
than or equal to the specified index set to 1. All other bits are 0.
bitsRightOf
private static long bitsRightOf(int x)
- Returns a long that has all bits that are less significant
than the specified index set to 1. All other bits are 0.
trailingZeroCnt
private static int trailingZeroCnt(long val)
unitIndex
private static int unitIndex(int bitIndex)
- Given a bit index return unit index containing it.
getBits
private long getBits(int j)
- Returns the unit of this bitset at index j as if this bitset had an
infinite amount of storage.
ensureCapacity
private void ensureCapacity(int unitsRequired)
- Ensures that the BitSet14 can hold enough units.
readObject
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
- This override of readObject makes sure unitsInUse is set properly
when deserializing a bitset
recalculateUnitsInUse
private void recalculateUnitsInUse()
- Set the field unitsInUse with the logical size in units of the bit
set. WARNING:This methodName assumes that the number of units actually
in use is less than or equal to the current value of unitsInUse!
|
|||||||||
| Home >> All >> joelib >> [ util overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
joelib.util.BitSet14