Package blbutil
Class BitList
- java.lang.Object
-
- blbutil.BitList
-
public class BitList extends java.lang.Object
Interface
BitList
represents a mutable sequence of bits with a fixed length.Instances of
BitList
are not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description BitList(int size)
Constructs aBitList
instance with the specifiedsize
and having all bits set to 0 (unset).BitList(long[] values, int size)
Constructs aBitList
instance from the specified values.BitList(BitList bitList)
Constructs a newBitList
instance with the same sequence of bits and the same size as the specifiedBitList
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clears all bits.void
clear(int index)
Clears the specified bit.void
copyFrom(BitList src, int from, int to)
Replaced the specified bits in thisBitlist
with the corresponding bits in the specifiedBitList
.boolean
equal(BitList other, int from, int to)
Returnstrue
if thisBitlist
and the specifiedBitList
have identical sequences of bits for the specified indices, and returnsfalse
otherwise.static boolean
equals(BitList a, BitList b)
Returnstrue
if the specifiedBitList
objects represent identical bit sequences having the same size, and returnsfalse
otherwise.boolean
get(int index)
Returns the specified bit as aboolean
value.int
getAsInt(int index)
Returns the specified bit as aint
value.int
hash(int from, int to)
Returns a hash code for the specified bits in thisBitlist
BitList
restrict(int from, int to)
Returns a newBitList
of size(from - to)
that is a copy of the specified bit indices of thisBitList
.void
set(int index)
Sets the specified bit.int
size()
Returns the number of bits in thisBitList
.static void
swapBits(BitList a, BitList b, int from, int to)
Swaps the specified bits of the two specifiedBitlist
objects.long[]
toLongArray()
Returns thisBitList
as along
array.java.lang.String
toString()
Returns a string representation of thisBitList
.
-
-
-
Constructor Detail
-
BitList
public BitList(int size)
Constructs aBitList
instance with the specifiedsize
and having all bits set to 0 (unset).- Parameters:
size
- the number of bits- Throws:
java.lang.IllegalArgumentException
- ifsize < 0
-
BitList
public BitList(long[] values, int size)
Constructs aBitList
instance from the specified values.- Parameters:
values
- a sequence of bitssize
- the number of bits- Throws:
java.lang.IllegalArgumentException
- ifsize < 0
java.lang.IllegalArgumentException
- ifvalues.length != (size + Long.SIZE - 1) / Long.SIZE
java.lang.NullPointerException
- ifvalues == null
-
BitList
public BitList(BitList bitList)
Constructs a newBitList
instance with the same sequence of bits and the same size as the specifiedBitList
.- 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 thisBitList
.- Returns:
- the number of bits in this
BitList
-
get
public boolean get(int index)
Returns the specified bit as aboolean
value. A 1 bit returnstrue
and a 0 bit returnsfalse
.- Parameters:
index
- a bit index- Returns:
- the specified bit as a
boolean
value. - Throws:
java.lang.IndexOutOfBoundsException
- ifindex < 0 || index >= this.size()
-
getAsInt
public int getAsInt(int index)
Returns the specified bit as aint
value.- Parameters:
index
- a bit index- Returns:
- the specified bit as a
int
value. - 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 BitList restrict(int from, int to)
Returns a newBitList
of size(from - to)
that is a copy of the specified bit indices of thisBitList
.- Parameters:
from
- the first bit to be copied (inclusive)to
- the last bit to be copied (exclusive)- Returns:
- a new
BitList
of size(from - to)
that is a copy of the specified bit indices of thisBitList
- Throws:
java.lang.IndexOutOfBoundsException
- iffrom < 0 || from > to || to > this.size
-
copyFrom
public void copyFrom(BitList src, int from, int to)
Replaced the specified bits in thisBitlist
with the corresponding bits in the specifiedBitList
.- Parameters:
src
- theBitList
to 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(BitList a, BitList b, int from, int to)
Swaps the specified bits of the two specifiedBitlist
objects.- Parameters:
a
- the firstBitList
b
- the secondBitList
from
- 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(BitList other, int from, int to)
Returnstrue
if thisBitlist
and the specifiedBitList
have identical sequences of bits for the specified indices, and returnsfalse
otherwise.- Parameters:
other
- theBitList
to be compared withthis
for equality.from
- the first bit to be compared (inclusive)to
- the last bit to be compared (exclusive)- Returns:
true
if thisBitlist
and the specifiedBitList
have 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 thisBitList
as along
array.- Returns:
- this
BitList
as along
array
-
toString
public java.lang.String toString()
Returns a string representation of thisBitList
. The exact details of the representation are unspecified and subject to change.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of this
BitList
.
-
equals
public static boolean equals(BitList a, BitList b)
Returnstrue
if the specifiedBitList
objects represent identical bit sequences having the same size, and returnsfalse
otherwise.- Parameters:
a
- a sequence of long valuesb
- a sequence of long values- Returns:
true
if the specifiedBitList
objects represent identical bit sequences having the same size- Throws:
java.lang.NullPointerException
- ifa == null || b == null
-
-