Skip to main content

Table

A Table is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value.

When to use

The Table structure is useful in cases where there are two properties that in combination have some value. For example, a school with students needs to store a grade for each class the student takes. The school is only interested in the last grade. In this case, a Table with the student as row key, the class as column key, and the grade as value would allow easy access to all the grades.

tip

Internally, a Table<R, C, V> is built on: RMap<R, RMap<C, V>>. So it is a Map of Maps. The .rowMap property gives direct access to this Map, and can sometimes provide more convenient ways to access the contained data.

Exports

The @rimbu/core package exports the following abstract Table TypeScript types:

NameDescription
VariantTable<R, C, V>a type-variant Table with row keys R, column keys C, and values V
Table<R, C, V>a generic Table with row keys R, column keys C, and values V

The @rimbu/core package exports the following concrete Table types:

NameDescription
HashTableHashColumn<R, C, V>a Table where the row keys and column keys are hashed
HashTableSortedColumn<R, C, V>a Table where the row keys are hashed and the column keys are sorted
SortedTableHashColumn<R, C, V>a Table where the row keys are sorted and the column keys are hashed
SortedTableSortedColumn<R, C, V>a Table where the row keys and column keys are sorted

Inheritance

Usage

Creation

Open file below in new window with full type-check

Query

Open file below in new window with full type-check

Builder

Open file below in new window with full type-check