Package elki.database.ids
Database IDs (short: DBID) in ELKI are based on the factory pattern, to allow replacing the simple Integer-based DBIDs with more complex implementations, e.g., for use with external databases or to add tracking for debugging purposes. This also allows adding of more efficient implementations later on in a single place.
DBID interface:
The DBID
object identifies a single object.
The DBIDs
hierarchy contains classes for handling groups (sets, arrays) of IDs, that can
be seen as a two-dimensional matrix consisting
ArrayDBIDs |
HashSetDBIDs |
|
---|---|---|
ModifiableDBIDs |
ArrayModifiableDBIDs |
HashSetModifiableDBIDs |
StaticDBIDs |
ArrayStaticDBIDs |
n/a |
StaticDBIDs
are structures that cannot support
modifications, but thus can be implemented more efficiently, for example as Interval. They are
mostly used by the data sources.
These interfaces cannot be instantiated, obviously. Instead, use the static
DBIDFactory.FACTORY
, which is also wrapped in the DBIDUtil
class.
Examples:
DBIDs allids = database.getIDs();
// preallocate an array of initial capacity 123
ArrayModifiableDBIDs array = DBIDUtil.newArraySet(123);
// new DBID hash set with minimum initial capacity
ModifiableDBIDs hash = DBIDUtil.newHashSet();
// add all DBIDs from the hash
tree.addDBIDs(hash)
Utility functions:
DBIDUtil.ensureArray
to ensureArrayDBIDs
DBIDUtil.ensureModifiable
to ensureModifiableDBIDS
DBIDUtil.makeUnmodifiable
to wrap DBIDs unmodifiable
-
Interface Summary Interface Description ArrayDBIDs Interface for array based DBIDs.ArrayModifiableDBIDs Array-oriented implementation of a modifiable DBID collection.ArrayStaticDBIDs Unmodifiable, indexed DBIDs.DBID Database ID object.DBIDArrayIter Array iterators that can also go backwards and seek.DBIDArrayMIter Modifiable array iterator.DBIDFactory Factory interface for generating DBIDs.DBIDIter Iterator for DBIDs.DBIDMIter Modifiable DBID iterator.DBIDPair Immutable pair of two DBIDs, more memory efficient than two DBIDs.DBIDRange Static DBID range.DBIDRef Some object referencing aDBID
.DBIDs Interface for a collection of database references (IDs).DBIDVar (Persistent) variable storing a DBID reference.DoubleDBIDHeap Max heap for DBIDs.DoubleDBIDIter Iterator over Double+DBID pairs results.DoubleDBIDList Collection of double values associated with objects.DoubleDBIDList.Consumer Consumer for (DBIDRef, double) pairs.DoubleDBIDListIter Iterator over Double+DBID pairs results.DoubleDBIDListMIter Modifiable DBIDList iterator.DoubleDBIDPair Pair of a double value and a DBID.HashSetDBIDs Hash-organized DBIDsHashSetModifiableDBIDs Set-oriented implementation of a modifiable DBID collection.KNNHeap Interface for kNN heaps.KNNList Interface for kNN results.ModifiableDBIDs Interface for a generic modifiable DBID collection.ModifiableDoubleDBIDList Modifiable API for Distance-DBID resultsSetDBIDs Interface for DBIDs that support fast "set" operations, in particular "contains" lookups.StaticDBIDs Unmodifiable DBIDs. -
Class Summary Class Description DBIDUtil DBID Utility functions.EmptyDBIDs Empty DBID collection.EmptyDBIDs.EmptyDBIDIterator Iterator for empty DBIDs-QuickSelectDBIDs QuickSelect computes ("selects") the element at a given rank and can be used to compute Medians and arbitrary quantiles by computing the appropriate rank.