HashTable is a subpattern of the collection pattern. HashTable implements a hash table data structure with the following additional attributes:
rangeInitial: defines the range of internal hash values of the hash table.
range: returns the actual range of internal hash values of the hash table.
hashFunction: takes an element reference and returns a hash value for that element. In most uses of hashTable, this function must be further bound to give a more intelligent distribution of hash values.
scanIndexed: takes a hash value and scans all elements in the hash table with the same hash value.
findIndexed: takes a hash value and finds an element with the same hash value, satisfying predicate.
statistics: enables calculation of various statistics about the usage of the hash table.
ExtensibleHashTable is a subpattern of the hashTable pattern. ExtensibleHashTable allows for extension of the range of hash values of the hashTable. Unless the specified hashFunction somehow explicitly can cope with dynamic changes to the hash range, the entire hashTable needs to be rehashed. ExtensibleHashTable implements the following additional attributes:
extend: extends the range of hash values of the hash table.
rehash: makes a total rehash of the contents of the hash table.