namespace HashMultiMapHashValue
A type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapHashValue API documentation
Companion interface: HashMultiMapHashValue<K,V>
Interfaces
Name | Description |
---|---|
HashMultiMapHashValue.Builder<K,V> | A mutable HashMultiMapHashValue builder used to efficiently create new immutable instances. See the MultiMap documentation and the HashMultiMapHashValue.Builder API documentation |
HashMultiMapHashValue.Context<UK,UV> | A context instance for an HashMultiMapHashValue that acts as a factory for every instance of this type of collection. |
HashMultiMapHashValue.NonEmpty<K,V> | A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapHashValue API documentation |
HashMultiMapHashValue.Types | Utility interface that provides higher-kinded types for this collection. |
Static Methods
builder
Returns an empty builder instance for this type of collection and context.
builder
Definition
builder<K extends UK, V extends UV>():
WithKeyValue
<Tp, K, V>['builder'];
Type parameters
Name | Constraints | Description |
---|---|---|
K | UK | |
V | UV |
HashMultiMapHashValue.builder<number, string>() // => HashMultiMapHashValue.Builder<number, string>
Overrides
createContext
Returns a new HashMultiMapHashValue context instance based on the given options
.
createContext
options
.Definition
createContext<UK, UV>(options?: {
keyMapContext?:
HashMap.Context
<UK>;
keyMapValuesContext?:
HashSet.Context
<UV>;
}):
HashMultiMapHashValue.Context
<UK, UV>;
Type parameters
Name | Description |
---|---|
UK | the upper key type for which the context can create instances |
UV | the upper value type for which the context can create instances |
Parameters
Name | Type | Description |
---|---|---|
options | { keyMapContext?: HashMap.Context <UK>; keyMapValuesContext?: HashSet.Context <UV>; } | (optional) an object containing the following properties: - keyMapContext: (optional) the map context to use for key to valueset mappings - keyMapValuesContext: (optional) the set context to use for value sets |
defaultContext
Returns the default context for HashMultiMapHashValue.
defaultContext
Definition
defaultContext<UK, UV>():
HashMultiMapHashValue.Context
<UK, UV>;
Type parameters
Name | Description |
---|---|
UK | the upper key type for which the context can create instances |
UV | the upper value type for which the context can create instances |
empty
Returns the (singleton) empty instance of this type and context with given key and value types.
empty
Definition
empty<K extends UK, V extends UV>():
WithKeyValue
<Tp, K, V>['normal'];
Type parameters
Name | Constraints | Description |
---|---|---|
K | UK | |
V | UV |
HashMultiMapHashValue.empty<number, string>() // => HashMultiMapHashValue<number, string>
HashMultiMapHashValue.empty<string, boolean>() // => HashMultiMapHashValue<string, boolean>
Overrides
from
Returns an immutable multimap of this type and context, containing the entries in the given source
StreamSource
.
from
source
StreamSource
.Definitions
from<K extends UK, V extends UV>(...sources:
ArrayNonEmpty
<
StreamSource.NonEmpty
<readonly [K, V]>>):
WithKeyValue
<Tp, K, V>['nonEmpty'];
from<K extends UK, V extends UV>(...sources:
ArrayNonEmpty
<
StreamSource
<readonly [K, V]>>):
WithKeyValue
<Tp, K, V>['normal'];
Type parameters
Name | Constraints | Description |
---|---|---|
K | UK | |
V | UV |
Parameters
Name | Type | Description |
---|---|---|
sources | ArrayNonEmpty < StreamSource.NonEmpty <readonly [K, V]>> | an array of StreamSource instances containing key-value entries |
HashMultiMapHashValue.from([[1, 'a'], [2, 'b']]) // => HashMultiMapHashValue.NonEmpty<number, string>
Overrides
of
Returns an immutable multimap of this collection type and context, containing the given entries
.
of
entries
.Definition
of<K extends UK, V extends UV>(...entries:
ArrayNonEmpty
<readonly [K, V]>):
WithKeyValue
<Tp, K, V>['nonEmpty'];
Type parameters
Name | Constraints | Description |
---|---|---|
K | UK | |
V | UV |
Parameters
Name | Type | Description |
---|---|---|
entries | ArrayNonEmpty <readonly [K, V]> | a non-empty array of key-value entries |
HashMultiMapHashValue.of([1, 'a'], [2, 'b'], [1, 'c']) // => HashMap.NonEmpty<number, string>
Overrides
reducer
Returns a Reducer
that adds received tuples to a MultiMap and returns the MultiMap as a result. When a source
is given, the reducer will first create a MultiMap from the source, and then add tuples to it.
reducer
Reducer
that adds received tuples to a MultiMap and returns the MultiMap as a result. When a source
is given, the reducer will first create a MultiMap from the source, and then add tuples to it.Definition
reducer<K extends UK, V extends UV>(source?:
StreamSource
<readonly [K, V]>): Reducer<readonly [K, V],
WithKeyValue
<Tp, K, V>['normal']>;
Type parameters
Name | Constraints | Description |
---|---|---|
K | UK | |
V | UV |
Parameters
Name | Type | Description |
---|---|---|
source | StreamSource <readonly [K, V]> | (optional) an initial source of tuples to add to |
const someSource: [number, string][] = [1, 'a'], [2, 'b'];
const result = Stream.of([1, 'c'], [3, 'a']).reduce(SortedMultiMap.reducer(someSource))
result.toArray() // => [[1, 'a'], [1, 'c'], [2, 'b'], [3, 'a']]
uses a builder under the hood. If the given source
is a BiMap in the same context, it will directly call .toBuilder()
.