Package blbutil
Class BitArray
- java.lang.Object
-
- blbutil.BitArray
-
public class BitArray extends java.lang.ObjectInterface
BitArrayrepresents a mutable sequence of bits with a fixed length.Instances of
BitArrayare not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description BitArray(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.BitArray(BitArray bitList)Constructs a newBitArrayinstance with the same sequence of bits and the same size as the specifiedBitArray.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clears all bits.voidclear(int index)Clears the specified bit.voidcopyFrom(BitArray src, int from, int to)Replaced the specified bits in thisBitlistwith the corresponding bits in the specifiedBitArray.booleanequal(BitArray other, int from, int to)Returnstrueif thisBitlistand the specifiedBitArrayhave identical sequences of bits for the specified indices, and returnsfalseotherwise.static booleanequals(BitArray a, BitArray b)Returnstrueif 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 thisBitlistBitArrayrestrict(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 voidswapBits(BitArray a, BitArray b, int from, int to)Swaps the specified bits of the two specifiedBitlistobjects.long[]toLongArray()Returns thisBitArrayas alongarray.java.lang.StringtoString()Returns a string representation of thisBitArray.
-
-
-
Constructor Detail
-
BitArray
public BitArray(int size)
Constructs aBitArrayinstance with the specifiedsizeand having all bits set to 0 (unset).- Parameters:
size- the number of bits- Throws:
java.lang.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:
java.lang.IllegalArgumentException- ifsize < 0java.lang.IllegalArgumentException- ifvalues.length != (size + Long.SIZE - 1) / Long.SIZEjava.lang.NullPointerException- ifvalues == null
-
BitArray
public BitArray(BitArray bitList)
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:
java.lang.NullPointerException- ifbitList == null
-
-
Method Detail
-
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:
java.lang.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:
java.lang.IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
set
public void set(int index)
Sets the specified bit.- Parameters:
index- a bit index- Throws:
java.lang.IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
clear
public void clear(int index)
Clears the specified bit.- Parameters:
index- a bit index- Throws:
java.lang.IndexOutOfBoundsException- ifindex < 0 || index >= this.size()
-
clear
public void clear()
Clears all bits.
-
restrict
public BitArray restrict(int from, int to)
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:
java.lang.IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size
-
copyFrom
public void copyFrom(BitArray src, int from, int to)
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:
java.lang.IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size || to > src.size()java.lang.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:
java.lang.IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size
-
swapBits
public static void swapBits(BitArray a, BitArray b, int from, int to)
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:
java.lang.IllegalArgumentException- ifs.size() != b.size()java.lang.IndexOutOfBoundsException- iffrom < 0 || from > to || to > a.size()java.lang.NullPointerException- ifa == null || b == null
-
equal
public boolean equal(BitArray other, int from, int to)
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:
java.lang.IndexOutOfBoundsException- iffrom < 0 || from > to || to > this.size || to > other.size()java.lang.NullPointerException- ifother == null
-
toLongArray
public long[] toLongArray()
Returns thisBitArrayas alongarray.- Returns:
- this
BitArrayas alongarray
-
toString
public java.lang.String toString()
Returns a string representation of thisBitArray. The exact details of the representation are unspecified and subject to change.- Overrides:
toStringin classjava.lang.Object- Returns:
- a string representation of this
BitArray.
-
equals
public static boolean equals(BitArray a, BitArray b)
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:
java.lang.NullPointerException- ifa == null || b == null
-
-