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