Package uk.ac.starlink.ttools.moc
Class MultiBitSetBag
java.lang.Object
uk.ac.starlink.ttools.moc.MultiBitSetBag
- All Implemented Interfaces:
IndexBag
IndexBag implementation based on a dynamically managed collection
of BitSets.
Regions into which values are never stored take up no storage.
It can hold non-negative numbers up to a given limit.
- Since:
- 28 Jan 2025
- Author:
- Mark Taylor
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Default size for a single BitSet. -
Constructor Summary
ConstructorsConstructorDescriptionMultiBitSetBag
(long size) Constructs a bag with a default bank size.MultiBitSetBag
(long size, int bankSize) Constructs a bag with a specified bank size. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addIndex
(long lindex) Adds an index to this bag.long
getCount()
Returns the number of distinct indices in this bag.boolean
hasIndex
(long lindex) Indicates whether the given index has previously been added to this bag.Returns an iterator over all the integers added to this bag, supplied in ascending order.
-
Field Details
-
DFLT_BANKSIZE
public static final int DFLT_BANKSIZEDefault size for a single BitSet.- See Also:
-
-
Constructor Details
-
MultiBitSetBag
public MultiBitSetBag(long size) Constructs a bag with a default bank size. Non-negative integers smaller than the given size value can be held.- Parameters:
size
- one greater than the largest permitted value
-
MultiBitSetBag
public MultiBitSetBag(long size, int bankSize) Constructs a bag with a specified bank size. Non-negative integers smaller than the given size value can be held.- Parameters:
size
- one greater than the largest permitted valuebankSize
- size of sub-buffers into which the storage is divided
-
-
Method Details
-
addIndex
public void addIndex(long lindex) Description copied from interface:IndexBag
Adds an index to this bag. If the index is already present, there is no effect.If the index is outside of the range permitted by this bag, behaviour is undefined.
-
hasIndex
public boolean hasIndex(long lindex) Description copied from interface:IndexBag
Indicates whether the given index has previously been added to this bag.If the index is outside of the range permitted by this bag, behaviour is undefined.
-
getCount
public long getCount()Description copied from interface:IndexBag
Returns the number of distinct indices in this bag. -
sortedLongIterator
Description copied from interface:IndexBag
Returns an iterator over all the integers added to this bag, supplied in ascending order.- Specified by:
sortedLongIterator
in interfaceIndexBag
- Returns:
- sorted iterator over indices
-