See: Description

| 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. | 
| DBIDRange | Static DBID range. | 
| DBIDRef | Some object referencing a  DBID. | 
| DBIDs | Interface for a collection of database references (IDs). | 
| DBIDVar | (Persistent) variable storing a DBID reference. | 
| DistanceDBIDPair<D extends Distance<D>> | Pair containing a distance an an object ID
 
 Note: there is no getter for the object, as this is a  DBIDRef. | 
| DoubleDBIDPair | Pair of a double value and a DBID | 
| DoubleDistanceDBIDPair | Pair containing a double distance a DBID. | 
| HashSetDBIDs | Hash-organized DBIDs | 
| HashSetModifiableDBIDs | Set-oriented implementation of a modifiable DBID collection. | 
| ModifiableDBIDs | Interface for a generic modifiable DBID collection. | 
| SetDBIDs | Interface for DBIDs that support fast "set" operations, in particular
 "contains" lookups. | 
| StaticDBIDs | Unmodifiable DBIDs. | 
| Class | Description | 
|---|---|
| DBIDUtil | DBID Utility functions. | 
| EmptyDBIDs | Empty DBID collection. | 
| EmptyDBIDs.EmptyDBIDIterator | Iterator for empty DBIDs- | 
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.
 
 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)
 DBIDUtil.ensureArray to ensure ArrayDBIDsDBIDUtil.ensureModifiable to ensure ModifiableDBIDSDBIDUtil.makeUnmodifiable to wrap DBIDs unmodifiable (UnmodifiableDBIDsMergedDBIDs
 allows virtual concatenation of multiple DBIDs objects.
MaskedDBIDs
 allows masking an ArrayDBIDs with a BitSet.