|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectit.unimi.dsi.fastutil.booleans.AbstractBooleanCollection
it.unimi.dsi.fastutil.booleans.AbstractBooleanList
it.unimi.dsi.bits.AbstractBitVector
public abstract class AbstractBitVector
An abstract implementation of a BitVector
.
This abstract implementation provides almost all methods: you have to provide just
BooleanList.getBoolean(int)
and
List.size()
. No attributes are defined.
Note that the integer-set view provided by asLongSet()
is not cached: if you
want to cache the result of the first call, you must do your own caching.
Warning: this class has several optimised methods
that assume that getLong(long, long)
is implemented efficiently when its
arguments are multiples of Long.SIZE
(see, e.g., the implementation
of compareTo(BitVector)
and longestCommonPrefixLength(BitVector)
).
If you want speed up the processing of your own BitVector
implementations,
just implement getLong(long, long)
so that it is fast under the above conditions.
Nested Class Summary | |
---|---|
static class |
AbstractBitVector.LongBigListView
A list-of-integers view of a bit vector. |
static class |
AbstractBitVector.LongSetView
An integer sorted set view of a bit vector. |
static class |
AbstractBitVector.SubBitVector
A subvector of a given bit vector, specified by an initial and a final bit. |
Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanList |
---|
AbstractBooleanList.BooleanSubList |
Constructor Summary | |
---|---|
AbstractBitVector()
|
Method Summary | |
---|---|
boolean |
add(boolean value)
|
void |
add(int value)
Adds a bit with specified value at the end of this bit vector. |
void |
add(int index,
boolean value)
|
void |
add(long index,
boolean value)
Adds a bit with specified value at the specified index (optional operation). |
void |
add(long index,
int value)
Adds a bit with specified integer value at the specified index (optional operation). |
BitVector |
and(BitVector v)
Performs a logical and between this bit vector and another one, leaving the result in this vector. |
BitVector |
append(BitVector bv)
Appends another bit vector to this bit vector. |
BitVector |
append(long value,
int k)
Appends the less significant bits of a long integer to this bit vector. |
LongBigList |
asLongBigList(int width)
Returns a view of this bit vector as a list of nonnegative integers of specified width. |
LongSortedSet |
asLongSet()
Returns a view of this bit vector as a sorted set of long integers. |
long[] |
bits()
Returns the bits in this bit vector as an array of longs, not to be modified. |
void |
clear()
|
void |
clear(int index)
|
void |
clear(long index)
Clears a bit in this bit vector (optional operation). |
int |
compareTo(BitVector v)
|
int |
compareTo(List<? extends Boolean> list)
|
BitVector |
copy()
Returns a copy of this bit vector. |
BitVector |
copy(long from,
long to)
Returns a copy of a part of this bit vector. |
long |
count()
Counts the number of bits set to true in this bit vector. |
protected void |
ensureIndex(long index)
|
protected void |
ensureRestrictedIndex(long index)
|
boolean |
equals(Object o)
|
BitVector |
fast()
Returns an instance of LongArrayBitVector containing a copy of this bit vector. |
void |
fill(boolean value)
Sets all bits this bit vector to the given boolean value (optional operation). |
void |
fill(int value)
Sets all bits this bit vector to the given integer value (optional operation). |
void |
fill(long from,
long to,
boolean value)
Fills a range of bits in this bit vector (optional operation). |
void |
fill(long from,
long to,
int value)
Clears a range of bits in this bit vector (optional operation). |
long |
firstOne()
Returns the position of the first bit set in this vector. |
void |
flip()
Flips all bits in this bit vector (optional operation). |
void |
flip(int index)
|
void |
flip(long index)
Flips a bit in this bit vector (optional operation). |
void |
flip(long from,
long to)
Flips a range of bits in this bit vector (optional operation). |
boolean |
getBoolean(int index)
|
int |
getInt(long index)
Returns the value of the specified bit as an integer. |
long |
getLong(long from,
long to)
Returns the specified bit range as a long. |
long |
lastOne()
Returns the position of the last bit set in this vector. |
BitVector |
length(long newLength)
Sets the number of bits in this bit vector. |
long |
longestCommonPrefixLength(BitVector v)
Returns the length of the greatest common prefix between this and the specified vector. |
long |
nextOne(long index)
Returns the position of the first bit set after the given position. |
long |
nextZero(long index)
Returns the position of the first bit unset after the given position. |
BitVector |
or(BitVector v)
Performs a logical or between this bit vector and another one, leaving the result in this vector. |
long |
previousOne(long index)
Returns the position of the first bit set before or at the given position. |
long |
previousZero(long index)
Returns the position of the first bit unset before or at the given position. |
boolean |
removeBoolean(int index)
|
boolean |
removeBoolean(long index)
Removes a bit with specified index (optional operation). |
BitVector |
replace(BitVector bv)
Replaces the content of this bit vector with another bit vector. |
void |
set(int index)
|
boolean |
set(int index,
boolean value)
|
void |
set(long index)
Sets a bit in this bit vector (optional operation). |
boolean |
set(long index,
boolean value)
Sets the value of the specified bit (optional operation). |
void |
set(long index,
int value)
Sets the value of the specified bit as an integer (optional operation). |
int |
size()
|
void |
size(int newSize)
|
AbstractBitVector.SubBitVector |
subList(int from,
int to)
|
BitVector |
subVector(long from)
Returns a subvector view specified by initial index and running up to the end of this vector. |
BitVector |
subVector(long from,
long to)
Returns a subvector view specified by initial and final index. |
String |
toString()
Returns a string representation of this vector. |
BitVector |
xor(BitVector v)
Performs a logical xor between this bit vector and another one, leaving the result in this vector. |
Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanList |
---|
add, addAll, addAll, addAll, addAll, addAll, addAll, addElements, addElements, booleanListIterator, booleanListIterator, booleanSubList, contains, ensureIndex, ensureRestrictedIndex, get, getElements, hashCode, indexOf, indexOf, iterator, lastIndexOf, lastIndexOf, listIterator, listIterator, peek, peekBoolean, pop, popBoolean, push, push, rem, remove, remove, removeElements, set, top, topBoolean |
Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection |
---|
add, booleanIterator, contains, containsAll, containsAll, isEmpty, rem, removeAll, removeAll, retainAll, retainAll, toArray, toArray, toArray, toBooleanArray, toBooleanArray |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface it.unimi.dsi.bits.BitVector |
---|
getBoolean, length |
Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanList |
---|
addAll, addAll, addAll, addElements, addElements, booleanListIterator, booleanListIterator, booleanSubList, getElements, indexOf, iterator, lastIndexOf, listIterator, listIterator, removeElements |
Methods inherited from interface java.util.List |
---|
add, add, addAll, addAll, contains, containsAll, get, hashCode, indexOf, isEmpty, lastIndexOf, remove, remove, removeAll, retainAll, set, toArray, toArray |
Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanCollection |
---|
addAll, booleanIterator, contains, containsAll, rem, removeAll, retainAll, toArray, toArray, toBooleanArray, toBooleanArray |
Methods inherited from interface it.unimi.dsi.fastutil.Stack |
---|
isEmpty |
Constructor Detail |
---|
public AbstractBitVector()
Method Detail |
---|
protected void ensureRestrictedIndex(long index)
protected void ensureIndex(long index)
public void set(int index)
public void clear(int index)
public void flip(int index)
public void set(long index)
BitVector
set
in interface BitVector
index
- the index of a bit.public void clear(long index)
BitVector
clear
in interface BitVector
index
- the index of a bit.public void flip(long index)
BitVector
flip
in interface BitVector
index
- the index of a bit.public void fill(boolean value)
BitVector
fill
in interface BitVector
public void fill(int value)
BitVector
fill
in interface BitVector
public void flip()
BitVector
flip
in interface BitVector
public void fill(long from, long to, boolean value)
BitVector
fill
in interface BitVector
from
- the first index (inclusive).to
- the last index (not inclusive).value
- the value (true or false).public void fill(long from, long to, int value)
BitVector
fill
in interface BitVector
from
- the first index (inclusive).to
- the last index (not inclusive).value
- the value (zero or nonzero).public void flip(long from, long to)
BitVector
flip
in interface BitVector
from
- the first index (inclusive).to
- the last index (not inclusive).public int getInt(long index)
BitVector
This method is a useful synonym for BitVector.getBoolean(long)
.
getInt
in interface BitVector
index
- the index of a bit.
public long getLong(long from, long to)
BitVector
Note that bit 0 of the returned long will be bit from
of this bit vector.
Implementations are invited to provide high-speed implementations for
the case in which from
is a multiple of Long.SIZE
and to
is from
+ Long.SIZE
(or less,
in case the vector length is exceeded). This behaviour make it possible to
implement high-speed hashing, copies, etc.
getLong
in interface BitVector
from
- the starting bit (inclusive).to
- the ending bit (exclusive).
public boolean getBoolean(int index)
getBoolean
in interface BooleanList
public boolean removeBoolean(int index)
removeBoolean
in interface BooleanList
removeBoolean
in class AbstractBooleanList
public boolean set(int index, boolean value)
set
in interface BooleanList
set
in class AbstractBooleanList
public void add(int index, boolean value)
add
in interface BooleanList
add
in class AbstractBooleanList
public boolean removeBoolean(long index)
BitVector
This method is semantically equivalent to BooleanList.removeBoolean(int)
,
but it gives access to long indices.
removeBoolean
in interface BitVector
index
- the index of a bit.
public boolean set(long index, boolean value)
BitVector
This method is semantically equivalent to BooleanList.set(int,boolean)
,
but it gives access to long indices.
set
in interface BitVector
index
- the index of a bit.value
- the new value.public void add(long index, boolean value)
BitVector
This method is semantically equivalent to BooleanList.add(int,boolean)
,
but it gives access to long indices.
add
in interface BitVector
index
- the index of a bit.value
- the value that will be inserted at position index
.public void set(long index, int value)
BitVector
This method is a useful synonym for BitVector.set(long, boolean)
.
set
in interface BitVector
index
- the index of a bit.value
- the new value (any nonzero integer for setting the bit, zero for clearing the bit).public void add(long index, int value)
BitVector
This method is a useful synonym for BitVector.add(long, boolean)
.
add
in interface BitVector
index
- the index of a bit.value
- the value that will be inserted at position index
(any nonzero integer for a true bit, zero for a false bit).public boolean add(boolean value)
add
in interface BooleanCollection
add
in class AbstractBooleanList
public void add(int value)
BitVector
This method is a useful synonym for BooleanCollection.add(boolean)
.
add
in interface BitVector
value
- the new value (any nonzero integer for a true bit, zero for a false bit).public BitVector append(long value, int k)
BitVector
append
in interface BitVector
value
- a value to be appendedk
- the number of less significant bits to be added to this bit vector.
public BitVector append(BitVector bv)
BitVector
append
in interface BitVector
bv
- a bit vector to be appended.
public BitVector copy()
BitVector
copy
in interface BitVector
public BitVector copy(long from, long to)
BitVector
copy
in interface BitVector
from
- the starting bit, inclusive.to
- the ending bit, not inclusive.
from
(inclusive) to bit to
(not inclusive)public BitVector fast()
LongArrayBitVector
containing a copy of this bit vector.
fast
in interface BitVector
LongArrayBitVector
containing a copy of this bit vector.public long count()
BitVector
count
in interface BitVector
public long firstOne()
BitVector
firstOne
in interface BitVector
public long lastOne()
BitVector
lastOne
in interface BitVector
public long nextOne(long index)
BitVector
nextOne
in interface BitVector
index
(inclusive), or -1 if no such bit exists.public long previousOne(long index)
BitVector
previousOne
in interface BitVector
public long nextZero(long index)
BitVector
nextZero
in interface BitVector
index
(inclusive), or -1 if no such bit exists.public long previousZero(long index)
BitVector
previousZero
in interface BitVector
public long longestCommonPrefixLength(BitVector v)
BitVector
longestCommonPrefixLength
in interface BitVector
v
- a bit vector.
public BitVector and(BitVector v)
BitVector
and
in interface BitVector
v
- a bit vector.
public BitVector or(BitVector v)
BitVector
or
in interface BitVector
v
- a bit vector.
public BitVector xor(BitVector v)
BitVector
xor
in interface BitVector
v
- a bit vector.
public int size()
size
in interface Collection<Boolean>
size
in interface List<Boolean>
public void size(int newSize)
size
in interface BooleanList
size
in class AbstractBooleanList
public void clear()
clear
in interface Collection<Boolean>
clear
in interface List<Boolean>
clear
in class AbstractBooleanCollection
public BitVector replace(BitVector bv)
BitVector
replace
in interface BitVector
bv
- a bit vector.
public boolean equals(Object o)
equals
in interface Collection<Boolean>
equals
in interface List<Boolean>
equals
in class AbstractBooleanList
public long[] bits()
BitVector
bits
in interface BitVector
BitVector.length()
bits contain the bits of
this bit vector. The array cannot be modified.public BitVector length(long newLength)
BitVector
It is expected that this method will try to allocate exactly the necessary space.
If the number of bits in this vector is smaller than
or equal to Integer.MAX_VALUE
, this
method is semantically equivalent to BooleanList.size(int)
.
length
in interface BitVector
public LongSortedSet asLongSet()
BitVector
More formally, this bit vector is infinitely extended to the
left with zeros (e.g., all bits beyond BitVector.length(long)
are
considered zeroes). The resulting infinite string is interpreted as the
characteristic function of a set of integers.
Note that, in particular, the resulting string representation is
exactly that of a BitSet
.
asLongSet
in interface BitVector
public LongBigList asLongBigList(int width)
BitVector
More formally, getLong(p)
will return
the nonnegative integer defined by the bits starting at p * width
(bit 0, inclusive)
and ending at (p + 1) * width
(bit width
− 1, exclusive).
asLongBigList
in interface BitVector
public AbstractBitVector.SubBitVector subList(int from, int to)
subList
in interface BooleanList
subList
in interface List<Boolean>
subList
in class AbstractBooleanList
public BitVector subVector(long from, long to)
BitVector
The object returned by this method is a bit vector representing a view of this bit vector restricted to the given indices. Changes to the subvector will be reflected in the main vector.
subVector
in interface BitVector
from
- the first index (inclusive).to
- the last index (not inclusive).public BitVector subVector(long from)
BitVector
subVector
in interface BitVector
from
- the first index (inclusive).BitVector.subVector(long, long)
public int compareTo(List<? extends Boolean> list)
compareTo
in interface Comparable<List<? extends Boolean>>
compareTo
in class AbstractBooleanList
public int compareTo(BitVector v)
public String toString()
Note that this string representation shows the bit of index 0 at the leftmost position.
toString
in class AbstractBooleanList
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |