Construct a new hash-based dictionary.
const d = new HashDict<number, string>()
Similar to JavaScript's built-in map type, the constructor accepts a list of key-value pairs that will immediately be added to the resulting dictionary.
const d = new HashDict<number, string>([
[1, 'one'],
[2, 'two']
])
The dictionary can be tweaked by providing a HashDictOptions object, which allows to configure things like the default hashing function and value equality.
const d = new HashDict<number, string>({
hash: num => num,
keysEqual: (a, b) => a === b,
valuesEqual: (a, b) => a === b,
elements: [[1, 'one'], [2, 'two']]
})
Count the amount of elements in the collection.
⚠️ In most cases, this should be an O(1)
operation. However, there are
cases where this can be an O(n)
operation. Therefore, it is recommended
to always cache the result in a local variable.
Add an element to the collection. If the element already exists, update its value.
The location where the element is placed depends on the collection type, and in the generic case there is no guarantee on the location where it is inserted.
This method returns a pair with the first element indicating whether the element was added, while the second element refers to the actual location of the element.
Optional
hint: anyA transparent object obtained by getAddHint.
A simple hash-based dictionary that only allows one item with same key.
Most methods in this collection, given that a proper hashing function is set up, are in
Θ(1 + n/k)
. If you're out of luck, this characteristic can grow toO(n)
.When a new entry is added with a key that is already taken, the dictionary will replace the corresponding entry with the new one.