@klippersubs/hashtable
Hash table implementation.
yarn add @klippersubs/hashtable
import HashTable, { hashString } from '@klippersubs/hashtable';
const ht = new HashTable(hashString);
ht.set('Alice', '+7 987 654‑32‑10');
ht.set('Bob', '+81 987 654‑32‑10');
ht.set('Alice', '+81 012 345‑67‑89');
ht.delete('Bob');
console.log(ht.get('Alice'));
// → '+81 012 345‑67‑89'
console.log(ht.get('Bob'));
// → undefined
console.log(ht.has('Bob'));
// → false
import { StringTable } from '@klippersubs/hashtable';
const st = new StringTable();
st.set('Alice', '+7 987 654‑32‑10');
st.set('Bob', '+81 987 654‑32‑10');
st.set('Alice', '+81 012 345‑67‑89');
st.delete('Bob');
console.log(st.get('Alice'));
// → '+81 012 345‑67‑89'
console.log(st.get('Bob'));
// → undefined
console.log(st.has('Bob'));
// → false
Exported API
Hash
Type export Callback type for calculating a hash of key.
Generic params:
-
Key
— key type.
Params:
-
key: Key
— a key to calculate hash. -
capacity: number
— hash table capacity.
Return value:
-
number
— hash.
hashString
Export Calculates a hash of string key.
Params:
-
key: string
— a key to calculate hash. -
capacity: number
— hash table capacity.
Return value:
-
number
— hash.
HashTable
Default export Hash table class.
Generic params:
-
Key
— key type. -
Value
— value type.
Constructor
Params:
-
hash: Hash<Key>
— hash function. -
capacity: number = 8
— capacity of the hash table.
set
Method Sets key–value pair.
Params:
-
key: Key
. -
value: Value
.
Return value:
-
this
.
get
Method Returns value of a key–value pair.
Params:
-
key: Key
.
Return value:
-
Value
.
has
Method Checks if key—value pair exists.
Params:
-
key: Key
.
Return value:
-
boolean
.
delete
Method Deletes key—value pair.
Params:
-
key: Key
.
Return value:
-
this
.
StringTable
Export Specialized hash table with string keys.
Generic params:
-
Value
— value type.
Constructor
Params:
-
capacity: number = 8
— capacity of the hash table.
License
MIT