Package it.unimi.dsi.bits
Class BitVectors
- java.lang.Object
-
- it.unimi.dsi.bits.BitVectors
-
public class BitVectors extends java.lang.Object
A class providing static methods and objects that do useful things with bit vectors.- See Also:
BitVector
-
-
Field Summary
Fields Modifier and Type Field Description static BitVector
EMPTY_VECTOR
An immutable, singleton empty bit vector.static it.unimi.dsi.bits.BitVectors.BitVectorOfflineSerializer
OFFLINE_SERIALIZER
A serializer forLongArrayBitVector
instances that can be used withOfflineIterable
.static BitVector
ONE
An immutable bit vector of length one containing a one.static BitVector
ZERO
An immutable bit vector of length one containing a zero.
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static void
ensureFromTo(long bitVectorLength, long from, long to)
static <T extends BitVector>
TransformationStrategy<T>identity()
Deprecated.static LongArrayBitVector
readFast(java.io.DataInput dis)
Reads quickly a bit vector from aDataInputStream
.static LongArrayBitVector
readFast(java.io.DataInput dis, LongArrayBitVector bv)
Reads quickly a bit vector from aDataInputStream
.static void
writeFast(BitVector v, java.io.DataOutput dos)
Writes quickly a bit vector to aDataOutputStream
.
-
-
-
Field Detail
-
EMPTY_VECTOR
public static final BitVector EMPTY_VECTOR
An immutable, singleton empty bit vector.
-
ZERO
public static final BitVector ZERO
An immutable bit vector of length one containing a zero.
-
ONE
public static final BitVector ONE
An immutable bit vector of length one containing a one.
-
OFFLINE_SERIALIZER
public static it.unimi.dsi.bits.BitVectors.BitVectorOfflineSerializer OFFLINE_SERIALIZER
A serializer forLongArrayBitVector
instances that can be used withOfflineIterable
. It can serialize any implementation ofBitVector
, and requires at construction time an instance ofLongArrayBitVector
that will be used to return deserialized elements.
-
-
Method Detail
-
identity
@Deprecated public static <T extends BitVector> TransformationStrategy<T> identity()
Deprecated.
-
ensureFromTo
public static void ensureFromTo(long bitVectorLength, long from, long to)
-
writeFast
public static void writeFast(BitVector v, java.io.DataOutput dos) throws java.io.IOException
Writes quickly a bit vector to aDataOutputStream
.This method writes a bit vector in a simple format: first, a long representing the length. Then, as many longs as necessary to write the bits in the bit vectors (i.e.,
LongArrayBitVector.words(long)
of the bit vector length), obtained viaBitVector.getLong(long, long)
.The main purpose of this function is to support
OfflineIterable
(seeOFFLINE_SERIALIZER
).- Parameters:
v
- a bit vector.dos
- a data output stream.- Throws:
java.io.IOException
-
readFast
public static LongArrayBitVector readFast(java.io.DataInput dis) throws java.io.IOException
Reads quickly a bit vector from aDataInputStream
.This method is the dual of
writeFast(BitVector, DataOutput)
. If you need to avoid creating a bit vector at each call, please have a look atreadFast(DataInput, LongArrayBitVector)
.- Parameters:
dis
- a data input stream.- Returns:
- the next bit vector in the stream, as saved by
writeFast(BitVector, DataOutput)
. - Throws:
java.io.IOException
- See Also:
writeFast(BitVector, DataOutput)
,readFast(DataInput, LongArrayBitVector)
-
readFast
public static LongArrayBitVector readFast(java.io.DataInput dis, LongArrayBitVector bv) throws java.io.IOException
Reads quickly a bit vector from aDataInputStream
.This method is similar in purpose to
readFast(DataInput)
, but it allows reuse of the bit vector.- Parameters:
dis
- a data input stream.bv
- a long-array bit vector.- Returns:
bv
, filled with the next bit vector in the stream, as saved bywriteFast(BitVector, DataOutput)
.- Throws:
java.io.IOException
- See Also:
writeFast(BitVector, DataOutput)
,readFast(DataInput)
-
-