Skip to main content

namespace BiMap

A type-invariant immutable bi-directional Map where keys and values have a one-to-one mapping. See the BiMap documentation and the BiMap API documentation

Companion interface: BiMap<K,V>

Interfaces

NameDescription
BiMap.Builder<K,V>A mutable BiMap builder used to efficiently create new immutable instances. See the BiMap documentation and the BiMap.Builder API documentation
BiMap.Context<UK,UV,Tp>The BiMap's Context instance that serves as a factory for all related immutable instances and builders.
BiMap.NonEmpty<K,V>A non-empty type-invariant immutable bi-directional Map where keys and values have a one-to-one mapping. See the BiMap documentation and the BiMap API documentation *
BiMap.TypesUtility interface that provides higher-kinded types for this collection.

Static Methods

builder

Returns an empty BiMap builder instance.

Definition

builder<K extends UK, V extends UV>(): BiMap.Builder<K, V>;

Type parameters

NameConstraintsDescription
KUK
VUV
example
BiMap.builder<number, string>()    // => BiMap.Builder<number, string>

Overrides

BiMapFactory.builder

createContext

Returns a new BiMap context instance based on the given options.

Definition

createContext<UK, UV>(options?: {
    keyValueContext?: RMap.Context<UK>;
    valueKeyContext?: RMap.Context<UV>;
  }): BiMap.Context<UK, UV>;

Type parameters

NameDescription
UKthe upper key type for which the context can create instances
UVthe upper value type for which the context can create instances

Parameters

NameTypeDescription
options{
    keyValueContext?: RMap.Context<UK>;
    valueKeyContext?: RMap.Context<UV>;
  }
(optional) an object containing the following properties:
- keyValueContext: (optional) the map context to use for key value mappings
- valueKeyContext: (optional) the map context to use for value key mappings

defaultContext

Returns the default context for BiMaps.

Definition

defaultContext<UK, UV>(): BiMap.Context<UK, UV>;

Type parameters

NameDescription
UKthe upper key type for which the context can create instances
UVthe 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.

Definition

empty<K extends UK, V extends UV>(): BiMap<K, V>;

Type parameters

NameConstraintsDescription
KUK
VUV
example
BiMap.empty<number, string>()    // => BiMap<number, string>
BiMap.empty<string, boolean>() // => BiMap<string, boolean>

Overrides

BiMapFactory.empty

from

Returns an immutable BiMap, containing the entries in the given sources StreamSource instances.

Definitions

from<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource<readonly [K, V]>>): BiMap.NonEmpty<K, V>;

from<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource.NonEmpty<readonly [K, V]>>): BiMap<K, V>;

Type parameters

NameConstraintsDescription
KUK
VUV

Parameters

NameTypeDescription
sourcesArrayNonEmpty<StreamSource<readonly [K, V]>>an array of StreamSource instances contaning key-value entries
example
BiMap.from([[1, 'a'], [2, 'b']])    // => BiMap.NonEmpty<number, string>

Overrides

BiMapFactory.from

of

Returns an immutable BiMap, containing the given entries.

Definition

of<K extends UK, V extends UV>(...entries: ArrayNonEmpty<readonly [K, V]>): BiMap.NonEmpty<K, V>;

Type parameters

NameConstraintsDescription
KUK
VUV

Parameters

NameTypeDescription
entriesArrayNonEmpty<readonly [K, V]>a non-empty array of key-value entries
example
BiMap.of([1, 'a'], [2, 'b'])    // => BiMap.NonEmpty<number, string>

Overrides

BiMapFactory.of

reducer

Returns a Reducer that adds received tuples to a BiMap and returns the BiMap as a result. When a source is given, the reducer will first create a BiMap 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], BiMap<K, V>>;

Type parameters

NameConstraintsDescription
KUK
VUV

Parameters

NameTypeDescription
sourceStreamSource<readonly [K, V]>(optional) an initial source of tuples to add to
example
const someSource = BiMap.of([1, 'a'], [2, 'b']);
const result = Stream.of([1, 'c'], [3, 'a']).reduce(BiMap.reducer(someSource))
result.toArray() // => [[1, 'c'], [2, 'b'], [3, 'a']]
note

uses a builder under the hood. If the given source is a BiMap in the same context, it will directly call .toBuilder().

Overrides

BiMapFactory.reducer