Map
Balanced ordered tree of 'Compare' keys and 'Base' values
function : Example() ~ Nil {
# insert elements
map := Collection.Map->New()<IntRef, String>;
map->Insert(415, "San Francisco");
map->Insert(510, "Oakland");
map->Insert(925, "East Bay");
# get size
map->Size()->PrintLine();
# get value by key
map->Find(510)->PrintLine();
# get key/values
key_values := map->GetKeyValues()<Pair<IntRef, String>>;
each(key_value := key_values) {
key_value->GetFirst()->PrintLine();
};
# get values
values := map->GetValues()<String>;
each(value := values) {
value->PrintLine();
};
# check for key
map->Has(408)->PrintLine();
}
Operations
Each
Function called for each element
method : public : Each(f:(K,V)~Nil) ~ Map<K,V>
Parameters
Name | Type | Description |
---|---|---|
f | (K,V)~Nil | function called |
Filter
Uses the given function to filter out values
method : public : Filter(f:(K)~Bool) ~ Map<K,V>
Parameters
Name | Type | Description |
---|---|---|
f | (K)~Bool | function to use a filter. If the function evaluates to true the value is added to the collection. |
Return
Type | Description |
---|---|
Map<K,V> | filtered map |
Find
Searches for a value in a map
method : public : Find(key:K) ~ V
Parameters
Name | Type | Description |
---|---|---|
key | K | search key |
Return
Type | Description |
---|---|
V | found value, Nil if not found |
GetKeyValues
Get a collection of keys
method : public : GetKeyValues() ~ Collection.Vector<Pair<K,V>>
Return
Type | Description |
---|---|
CollectionVector<Pair<K,V>> | vector of keys |
GetKeys
Get a collection of keys
method : public : GetKeys() ~ Collection.Vector<K>
Return
Type | Description |
---|---|
CollectionVector<K> | vector of keys |
GetValues
Gets a collection of values
method : public : GetValues() ~ Collection.Vector<V>
Return
Type | Description |
---|---|
CollectionVector<V> | vector of values |
Has
Checks for a value in a map
method : public : Has(key:K) ~ Bool
Parameters
Name | Type | Description |
---|---|---|
key | K | search key |
Return
Type | Description |
---|---|
Bool | true if found, false otherwise |
Insert
Inserts a value into the map
method : public : Insert(key:K, value:V) ~ Nil
Parameters
Name | Type | Description |
---|---|---|
key | K | key |
value | V | value |
IsEmpty
Checks to see if the map is empty
method : public : IsEmpty() ~ Bool
Return
Type | Description |
---|---|
Bool | true if empty, false otherwise |
Reduce
Uses the given function to reduce the values
method : public : Reduce(a:K, f:(K,K)~K) ~ K
Parameters
Name | Type | Description |
---|---|---|
a | K | initial value (i.e. accumulator) |
f | (K,K)~K | function to use a reduce |
Return
Type | Description |
---|---|
K | reduced vector |
Remove
Removes a value from the map
method : public : Remove(key:K) ~ Bool
Parameters
Name | Type | Description |
---|---|---|
key | K | key for value to remove |
ToString
Formats the collection into a string. If an element implements the 'Stringify' interface, it's 'ToString()' is called.
method : public : ToString() ~ String
Return
Type | Description |
---|---|
String | string representation |
Zip
Creates a map from a vector of keys and values
function : Zip(keys:CompareVector<K>, values:Vector<V>) ~ Map<K,V>
Parameters
Name | Type | Description |
---|---|---|
keys | CompareVector<K> | keys |
values | Vector<V> | values |
Return
Type | Description |
---|---|
Map<K,V> | map of key/value pairs |