Main classes manipulating bits.
BitVector interface is the basis for bit vector manipulation.
LongArrayBitVector implementation is its main implementation.
The idea is to offer an efficent but easy-to-use bit-vector class by allowing access under many different views. For instance,
a bit vector can be seen as a
LongBigList of integers of fixed width. Or as a sorted set of
integers, where the positions of the bits set to one represent elements.
Whenever another object has to be turned into a bit string, you can provide a
TransformationStrategy to that purpose. The static container
TransformationStrategies has several ready-made transformations,
and some useful wrapping methods.
Warning: implementing all features of
LongArrayBitVector has not been easy. There may be bugs.
Class Summary Class Description AbstractBitVectorAn abstract implementation of a
AbstractBitVector.LongBigListViewA list-of-integers view of a bit vector. AbstractBitVector.LongSetViewAn integer sorted set view of a bit vector. AbstractBitVector.SubBitVectorA subvector of a given bit vector, specified by an initial and a final bit. BitVectorsA class providing static methods and objects that do useful things with bit vectors. BooleanListBitVectorA boolean-list based implementation of
FastAll-purpose optimised bit-fiddling static-method container class. HuTuckerTransformationStrategyA transformation strategy mapping strings to their Hu-Tucker encoding. LongArrayBitVectorA bit vector implementation based on arrays of longs. LongArrayBitVector.LongBigListViewA list-of-integers view of a bit vector. PrefixCoderTransformationStrategyA transformation strategy mapping strings using a prefix-free encoder. TransformationStrategiesA class providing static methods and objects that do useful things with transformation strategies.