Skip to main content

Immutable collections

Here is a brief overview of the basic Rimbu TypeScript immutable collection types. Many of these types have multiple concrete implementations, see the corresponding links for more information:

Single-typed base collections#

NameDescription
Stream<T>an Iterable-like structure that represents a source that can produce values of type T when requested
List<T>an immutable ordered sequence of elements of type T that can be manipulated and accessed randomly in a relatively efficient way
RSet<T>a Set collection with values of type T, where the collection does not contain duplicate values
MultiSet<T>a Set-like structure where each unique element of type T can be added multiple times, and its count is stored
Graph<N>a collection of nodes of type N that can be connected through edges

Two-typed base collections#

NameDescription
RMap<K, V>a Map collection with entries containing keys of type K and values of type V. Each key has exactly one value, and each key is unique
MultiMap<K, V>a Map-like structure in which each key of type K has one or more values of type V. For each key, it's associated values are unique
BiMap<K, V>a bidirectional Map of keys of type K and values of type V, where each key has exactly one value, and each value has exactly one key
BiMultiMap<K, V>a bidirectional MultiMap of keys of type K and values of type V, where each key-value association also has an inverse value-key association
ValuedGraph<N, V>a collection of nodes of type N that can be connected through edges with values of type V

Three-typed base collections#

NameDescription
Table<R, C, V>an immutable 2-dimensional Map, containing row keys of type R and column keys of type C, where a combination of a row and column key can contain one value of type V