|
JUtil | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.cscott.jutil.BitString
public final class BitString
BitString
implements a vector of bits
;
much like BitSet
... except that this implementation
actually works. Also, BitString
has some groovy features
which BitSet
doesn't; mostly related to efficient iteration
over true
and false
components, I think.
Each component of the BitString
has a boolean value.
The bits of a BitString
are indexed by non-negative
integers (that means they are zero-based, of course). Individual
indexed bits can be examined, set, or cleared. One
BitString
may be used to modify the contents of another
BitString
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 related to the logical length of a bit set and is defined independently of implementation.
Constructor Summary | |
---|---|
BitString(int nbits)
Creates an empty string with the specified size. |
Method Summary | |
---|---|
boolean |
and(BitString set)
Logically ANDs this bit set with the specified set of bits. |
void |
clear(int bit)
Clears a bit. |
void |
clearAll()
Clears all bits. |
void |
clearUpTo(int bit)
Clears all bits up to and including the given bit. |
BitString |
clone()
Clones the BitString. |
void |
copyBits(BitString set)
Copies the values of the bits in the specified set into this set. |
boolean |
equals(Object obj)
Compares this object against the specified object. |
int |
firstSet()
Returns the first index in the bit string which is set, or -1 if there is no such index. |
int |
firstSet(int where)
Returns the first index greater than where in the
bit string which is set, or -1 if there is no such index. |
boolean |
get(int bit)
Gets a bit. |
int |
hashCode()
Returns a hash code value for this bit string whose value depends only on which bits have been set within this BitString . |
boolean |
intersectionEmpty(BitString other)
Check if the intersection of the two sets is empty |
boolean |
isZero()
|
int |
lastSet()
Returns the last index in the bit string which is set, or -1 if there is no such index. |
int |
lastSet(int where)
Returns the last index less than where in the
bit string which is set, or -1 if there is no such index. |
int |
length()
Returns the "logical size" of this BitString : the
index of the highest set bit in the BitString plus
one. |
static void |
main(String[] argv)
Self-test function. |
int |
numberOfOnes()
|
int |
numberOfOnes(int where)
|
boolean |
or_upTo(BitString set,
int bit)
Logically ORs this bit set with the specified set of bits. |
boolean |
or(BitString set)
Logically ORs this bit set with the specified set of bits. |
void |
set(int bit)
Sets a bit. |
void |
setAll()
Sets all bits. |
void |
setUpTo(int bit)
Sets all bits up to and including the given bit. |
int |
size()
Returns the number of bits of space actually in use by this BitString to represent bit values. |
String |
toString()
Converts the BitString to a String. |
boolean |
xor(BitString set)
Logically XORs this bit set with the specified set of bits. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public BitString(int nbits)
nbits
- the size of the stringMethod Detail |
---|
public int firstSet()
public int firstSet(int where)
where
in the
bit string which is set, or -1 if there is no such index.
where
- the starting point for the search. May be negative.public int lastSet(int where)
where
in the
bit string which is set, or -1 if there is no such index.
where
- the starting point for the search.public int lastSet()
public void setAll()
public void setUpTo(int bit)
bit
- the bit to be set up to (zero-based)public void set(int bit)
bit
- the bit to be set (zero-based)public void clearAll()
public void clearUpTo(int bit)
bit
- the bit to be set up to (zero-based)public void clear(int bit)
bit
- the bit to be cleared (zero-based)public boolean get(int bit)
bit
- the bit to be gotten (zero-based)public boolean and(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be ANDed withpublic boolean or(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be ORed withpublic boolean or_upTo(BitString set, int bit)
true
if this
was modified in
response to the operation.
set
- the bit set to be ORed withpublic boolean xor(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be XORed withpublic boolean intersectionEmpty(BitString other)
other
- the set to check intersection withpublic void copyBits(BitString set)
set
- the bit set to copy the bits frompublic int hashCode()
BitString
.
hashCode
in class Object
public int length()
BitString
: the
index of the highest set bit in the BitString
plus
one. Returns zero if the BitString
contains no
set bits.
public int size()
BitString
to represent bit values.
The maximum element in the set is the size - 1st element.
The minimum element in the set is the zero'th element.
public boolean equals(Object obj)
equals
in class Object
obj
- the object to compare with
public boolean isZero()
public int numberOfOnes()
public int numberOfOnes(int where)
public BitString clone()
clone
in class Object
public String toString()
toString
in class Object
public static void main(String[] argv)
|
JUtil | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |