Package blbutil
Class BitArray
java.lang.Object
blbutil.BitArray
Interface BitArray represents a mutable sequence of bits
with a fixed length.
Instances of BitArray are not thread-safe.
-
Constructor Summary
ConstructorsConstructorDescriptionBitArray(int size) Constructs aBitArrayinstance with the specifiedsizeand having all bits set to 0 (unset).BitArray(long[] values, int size) Constructs aBitArrayinstance from the specified values.Constructs a newBitArrayinstance with the same sequence of bits and the same size as the specifiedBitArray. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears all bits.voidclear(int index) Clears the specified bit.voidReplaced the specified bits in thisBitlistwith the corresponding bits in the specifiedBitArray.booleanReturnstrueif thisBitlistand the specifiedBitArrayhave identical sequences of bits for the specified indices, and returnsfalseotherwise.static booleanReturnstrueif the specifiedBitArrayobjects represent identical bit sequences having the same size, and returnsfalseotherwise.booleanget(int index) Returns the specified bit as abooleanvalue.intgetAsInt(int index) Returns the specified bit as aintvalue.inthash(int from, int to) Returns a hash code for the specified bits in thisBitliststatic intlongHashCode(long value) restrict(int from, int to) Returns a newBitArrayof size(from - to)that is a copy of the specified bit indices of thisBitArray.voidset(int index) Sets the specified bit.intsize()Returns the number of bits in thisBitArray.static voidSwaps the specified bits of the two specifiedBitlistobjects.long[]Returns thisBitArrayas alongarray.toString()Returns a string representation of thisBitArray.
-
Constructor Details
-
BitArray
public BitArray(int size) Constructs aBitArrayinstance with the specifiedsizeand having all bits set to 0 (unset).- Parameters:
size- the number of bits- Throws:
IllegalArgumentException- ifsize < 0
-
BitArray
public BitArray(long[] values, int size) Constructs aBitArrayinstance from the specified values.- Parameters:
values- a sequence of bitssize- the number of bits- Throws:
IllegalArgumentException- ifsize < 0IllegalArgumentException- ifvalues.length != (size + Long.SIZE - 1) / Long.SIZENullPointerException- ifvalues == null
-
BitArray
Constructs a newBitArrayinstance with the same sequence of bits and the same size as the specifiedBitArray.- Parameters:
bitList- a sequence of bits to be copied- Throws:
NullPointerException- ifbitList == null
-
-
Method Details
-
size
public int size()Returns the number of bits in thisBitArray.- Returns:
- the number of bits in this
BitArray
-
get
public boolean get(int index) Returns the specified bit as abooleanvalue. A 1 bit returnstrueand a 0 bit returnsfalse.- Parameters:
index- a bit index- Returns:
- the specified bit as a
booleanvalue. - Throws:
IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
getAsInt
public int getAsInt(int index) Returns the specified bit as aintvalue.- Parameters:
index- a bit index- Returns:
- the specified bit as a
intvalue. - Throws:
IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
set
public void set(int index) Sets the specified bit.- Parameters:
index- a bit index- Throws:
IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
clear
public void clear(int index) Clears the specified bit.- Parameters:
index- a bit index- Throws:
IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
clear
public void clear()Clears all bits. -
restrict
Returns a newBitArrayof size(from - to)that is a copy of the specified bit indices of thisBitArray.- Parameters:
from- the first bit to be copied (inclusive)to- the last bit to be copied (exclusive)- Returns:
- a new
BitArrayof size(from - to)that is a copy of the specified bit indices of thisBitArray - Throws:
IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size
-
copyFrom
Replaced the specified bits in thisBitlistwith the corresponding bits in the specifiedBitArray.- Parameters:
src- theBitArrayto be copied fromfrom- the first bit to be copied (inclusive)to- the last bit to be copied (exclusive)- Throws:
IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size || to > src.size()NullPointerException- ifsrc == null
-
hash
public int hash(int from, int to) Returns a hash code for the specified bits in thisBitlist- Parameters:
from- the first bit (inclusive)to- the last bit (exclusive)- Returns:
- a hash code for the specified bits in this
Bitlist - Throws:
IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size
-
longHashCode
public static int longHashCode(long value) -
swapBits
Swaps the specified bits of the two specifiedBitlistobjects.- Parameters:
a- the firstBitArrayb- the secondBitArrayfrom- the first bit to be copied (inclusive)to- the last bit to be copied (exclusive)- Throws:
IllegalArgumentException- ifs.size() != b.size()IndexOutOfBoundsException- iffrom < 0 || from > to || to > a.size()NullPointerException- ifa == null || b == null
-
equal
Returnstrueif thisBitlistand the specifiedBitArrayhave identical sequences of bits for the specified indices, and returnsfalseotherwise. Returnstrueif(from == to) && (0 <= from) && (from < other.size()).- Parameters:
other- theBitArrayto be compared withthisfor equality.from- the first bit to be compared (inclusive)to- the last bit to be compared (exclusive)- Returns:
trueif thisBitlistand the specifiedBitArrayhave identical sequences of bits for the specified indices.- Throws:
IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size || to > other.size()NullPointerException- ifother == null
-
toLongArray
public long[] toLongArray()Returns thisBitArrayas alongarray.- Returns:
- this
BitArrayas alongarray
-
toString
Returns a string representation of thisBitArray. The exact details of the representation are unspecified and subject to change. -
equals
Returnstrueif the specifiedBitArrayobjects represent identical bit sequences having the same size, and returnsfalseotherwise.- Parameters:
a- a sequence of long valuesb- a sequence of long values- Returns:
trueif the specifiedBitArrayobjects represent identical bit sequences having the same size- Throws:
NullPointerException- ifa == null || b == null
-