HashMap
Mutable hash map (aka Hashtable)
This module defines an imperative hash map (hash table), with a general key and value type.
It has a minimal object-oriented interface: get
, set
, delete
, count
and entries
.
The class is parameterized by the key's equality and hash functions,
and an initial capacity. However, as with the Buffer
class, no array allocation
happens until the first set
.
Internally, table growth policy is very simple, for now: Double the current capacity when the expected bucket list size grows beyond a certain constant.
class HashMap<K, V>
Function size
func size() : Nat
Returns the number of entries in this HashMap.
Function delete
func delete(k : K)
Deletes the entry with the key k
. Doesn't do anything if the key doesn't
exist.
Function remove
func remove(k : K) : ?V
Removes the entry with the key k
and returns the associated value if it
existed or null
otherwise.
Function get
func get(k : K) : ?V
Gets the entry with the key k
and returns its associated value if it
existed or null
otherwise.
Function put
func put(k : K, v : V)
Insert the value v
at key k
. Overwrites an existing entry with key k
Function replace
func replace(k : K, v : V) : ?V
Insert the value v
at key k
and returns the previous value stored at
k
or null
if it didn't exist.
Function keys
func keys() : Iter.Iter<K>
An Iter
over the keys.
Function vals
func vals() : Iter.Iter<V>
An Iter
over the values.
Function entries
func entries() : Iter.Iter<(K, V)>
Returns an iterator over the key value pairs in this
HashMap
. Does not modify the HashMap
.
An imperative HashMap with a minimal object-oriented interface.
Maps keys of type K
to values of type V
.
Function clone
func clone<K, V>(h : HashMap<K, V>, keyEq : (K, K) -> Bool, keyHash : K -> Hash.Hash) : HashMap<K, V>
clone cannot be an efficient object method, ...but is still useful in tests, and beyond.
Function fromIter
func fromIter<K, V>(iter : Iter.Iter<(K, V)>, initCapacity : Nat, keyEq : (K, K) -> Bool, keyHash : K -> Hash.Hash) : HashMap<K, V>
Clone from any iterator of key-value pairs
Function map
func map<K, V1, V2>(h : HashMap<K, V1>, keyEq : (K, K) -> Bool, keyHash : K -> Hash.Hash, mapFn : (K, V1) -> V2) : HashMap<K, V2>
Function mapFilter
func mapFilter<K, V1, V2>(h : HashMap<K, V1>, keyEq : (K, K) -> Bool, keyHash : K -> Hash.Hash, mapFn : (K, V1) -> ?V2) : HashMap<K, V2>