- java.lang.Object
-
- org.chocosolver.memory.structure.OneWordS64BitSet
-
- All Implemented Interfaces:
IStateBitSet
public class OneWordS64BitSet extends Object implements IStateBitSet
-
-
Constructor Summary
Constructors Constructor Description OneWordS64BitSet(IEnvironment environment, int nbits)
Creates a bit set whose initial size is large enough to explicitly represent bits with indices in the range0
throughnbits-1
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
cardinality()
Returns the number of bits set to true in thisBitSet
.void
clear()
Sets all of the bits in this BitSet tofalse
.void
clear(int bitIndex)
Sets the bit specified by the index tofalse
.void
clear(int fromIndex, int toIndex)
Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (exclusive) tofalse
.boolean
equals(Object obj)
boolean
get(int bitIndex)
Returns the value of the bit with the specified index.int
hashCode()
boolean
isEmpty()
Returns true if thisBitSet
contains no bits that are set totrue
.int
length()
Returns the "logical size" of thisBitSet
: the index of the highest set bit in theBitSet
plus one.int
nextClearBit(int fromIndex)
Returns the index of the first bit that is set tofalse
that occurs on or after the specified starting index.int
nextSetBit(int fromIndex)
Returns the index of the first bit that is set totrue
that occurs on or after the specified starting index.int
prevClearBit(int fromIndex)
Returns the index of the nearest bit that is set tofalse
that occurs on or before the specified starting index.int
prevSetBit(int fromIndex)
Returns the index of the nearest bit that is set totrue
that occurs on or before the specified starting index.void
set(int bitIndex)
Sets the bit at the specified index totrue
.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) totrue
.int
size()
Returns the number of bits of space actually in use by thisBitSet
to represent bit values.String
toString()
-
-
-
Constructor Detail
-
OneWordS64BitSet
public OneWordS64BitSet(IEnvironment environment, int nbits)
Creates a bit set whose initial size is large enough to explicitly represent bits with indices in the range0
throughnbits-1
. All bits are initiallyfalse
.- Parameters:
environment
- backtrackable environmentnbits
- the initial size of the bit set.- Throws:
NegativeArraySizeException
- if the specified initial size is negative.
-
-
Method Detail
-
set
public void set(int bitIndex)
Sets the bit at the specified index totrue
.- Specified by:
set
in interfaceIStateBitSet
- Parameters:
bitIndex
- a bit index.- Throws:
IndexOutOfBoundsException
- if the specified index is negative.- Since:
- JDK1.0
-
set
public void set(int bitIndex, boolean value)
Sets the bit at the specified index to the specified value.- Specified by:
set
in interfaceIStateBitSet
- Parameters:
bitIndex
- a bit index.value
- a boolean value to set.- Throws:
IndexOutOfBoundsException
- if the specified index is negative.- Since:
- 1.4
-
set
public void set(int fromIndex, int toIndex)
Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (exclusive) totrue
.- Specified by:
set
in interfaceIStateBitSet
- Parameters:
fromIndex
- index of the first bit to be set.toIndex
- index after the last bit to be set.- Throws:
IndexOutOfBoundsException
- if fromIndex is negative, or toIndex is negative, or fromIndex is larger than toIndex.- Since:
- 1.4
-
clear
public void clear(int bitIndex)
Sets the bit specified by the index tofalse
.- Specified by:
clear
in interfaceIStateBitSet
- Parameters:
bitIndex
- the index of the bit to be cleared.- Throws:
IndexOutOfBoundsException
- if the specified index is negative.- Since:
- JDK1.0
-
clear
public void clear(int fromIndex, int toIndex)
Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (exclusive) tofalse
.- Specified by:
clear
in interfaceIStateBitSet
- Parameters:
fromIndex
- index of the first bit to be cleared.toIndex
- index after the last bit to be cleared.- Throws:
IndexOutOfBoundsException
- if fromIndex is negative, or toIndex is negative, or fromIndex is larger than toIndex.- Since:
- 1.4
-
clear
public void clear()
Sets all of the bits in this BitSet tofalse
.- Specified by:
clear
in interfaceIStateBitSet
- Since:
- 1.4
-
get
public final boolean get(int bitIndex)
Returns the value of the bit with the specified index. The value istrue
if the bit with the indexbitIndex
is currently set in thisBitSet
; otherwise, the result isfalse
.- Specified by:
get
in interfaceIStateBitSet
- Parameters:
bitIndex
- the bit index.- Returns:
- the value of the bit with the specified index.
- Throws:
IndexOutOfBoundsException
- if the specified index is negative.
-
nextSetBit
public int nextSetBit(int fromIndex)
Returns the index of the first bit that is set totrue
that occurs on or after the specified starting index. If no such bit exists then-1
is returned.To iterate over the
true
bits in aBitSet
, use the following loop:for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) { // operate on index i here }
- Specified by:
nextSetBit
in interfaceIStateBitSet
- Parameters:
fromIndex
- the index to start checking from (inclusive)- Returns:
- the index of the next set bit, or
-1
if there is no such bit - Throws:
IndexOutOfBoundsException
- if the specified index is negative- Since:
- 1.4
-
nextClearBit
public int nextClearBit(int fromIndex)
Returns the index of the first bit that is set tofalse
that occurs on or after the specified starting index.- Specified by:
nextClearBit
in interfaceIStateBitSet
- Parameters:
fromIndex
- the index to start checking from (inclusive)- Returns:
- the index of the next clear bit
- Throws:
IndexOutOfBoundsException
- if the specified index is negative- Since:
- 1.4
-
prevSetBit
public int prevSetBit(int fromIndex)
Returns the index of the nearest bit that is set totrue
that occurs on or before the specified starting index. If no such bit exists, or if-1
is given as the starting index, then-1
is returned.To iterate over the
true
bits in aBitSet
, use the following loop:for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) { // operate on index i here }
- Specified by:
prevSetBit
in interfaceIStateBitSet
- Parameters:
fromIndex
- the index to start checking from (inclusive)- Returns:
- the index of the previous set bit, or
-1
if there is no such bit - Throws:
IndexOutOfBoundsException
- if the specified index is less than-1
- Since:
- 1.7
-
prevClearBit
public int prevClearBit(int fromIndex)
Returns the index of the nearest bit that is set tofalse
that occurs on or before the specified starting index. If no such bit exists, or if-1
is given as the starting index, then-1
is returned.- Specified by:
prevClearBit
in interfaceIStateBitSet
- Parameters:
fromIndex
- the index to start checking from (inclusive)- Returns:
- the index of the previous clear bit, or
-1
if there is no such bit - Throws:
IndexOutOfBoundsException
- if the specified index is less than-1
- Since:
- 1.7
-
length
public int length()
Returns the "logical size" of thisBitSet
: the index of the highest set bit in theBitSet
plus one. Returns zero if theBitSet
contains no set bits.- Returns:
- the logical size of this
BitSet
. - Since:
- 1.2
-
isEmpty
public boolean isEmpty()
Returns true if thisBitSet
contains no bits that are set totrue
.- Specified by:
isEmpty
in interfaceIStateBitSet
- Returns:
- boolean indicating whether this
BitSet
is empty. - Since:
- 1.4
-
cardinality
public int cardinality()
Returns the number of bits set to true in thisBitSet
.- Specified by:
cardinality
in interfaceIStateBitSet
- Returns:
- the number of bits set to true in this
BitSet
. - Since:
- 1.4
-
size
public int size()
Returns the number of bits of space actually in use by thisBitSet
to represent bit values. The maximum element in the set is the size - 1st element.- Specified by:
size
in interfaceIStateBitSet
- Returns:
- the number of bits currently in this bit set.
-
-