Skip to content

FuzzyMultiMap

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:27

A multimap whose keys match after a caller-supplied normalisation.

FuzzyMap’s normalisation with MultiMap’s one-key-many-values shape: keys that normalise together share a bucket, and the bucket keeps every value in insertion order, duplicates included.

As in FuzzyMap, the first key to claim a normalised bucket is the one keys() reports, so the original spelling survives for display.

Time complexity: O(1) plus normalize for add, has, countFor and delete; O(k) for hasEntry/deleteEntry in the bucket’s size.

K

The key type as callers see it.

V

The value type.

new FuzzyMultiMap<K, V>(iterable, options): FuzzyMultiMap<K, V>

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:33

Iterable<readonly [K, V], any, any> | undefined

FuzzyMultiMapOptions<K>

FuzzyMultiMap<K, V>

[iterator](): Iterator<readonly [K, V]>

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:46

Iterator<readonly [K, V]>

IMultimap.[iterator]


add(key, value): void

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:74

O(1) plus normalize. Appends even when the value is already present.

K

V

void

IMultimap.add


addAll(key, values): void

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:80

O(m) in the number of values.

K

Iterable<V>

void

IMultimap.addAll


clear(): void

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:55

Removes all elements from the collection.

void

IMultimap.clear


count(): number

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:51

The total number of (key, value) entries, not the number of keys.

number

IMultimap.count


countFor(key): number

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:150

O(1) plus normalize.

K

number

IMultimap.countFor


delete(key): number

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:110

Removes the whole bucket key normalises to. O(1) plus normalize.

K

number

How many entries were removed.

IMultimap.delete


deleteEntry(key, value): boolean

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:125

Removes the first occurrence of value in the bucket. O(k).

K

V

boolean

IMultimap.deleteEntry


entries(): IterableIterator<readonly [K, V]>

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:167

Every pair, grouped by bucket, each key in its original form.

IterableIterator<readonly [K, V]>

IMultimap.entries


get(key): IterableIterator<V>

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:61

The values under whatever key normalises to, in insertion order.

K

IterableIterator<V>

IMultimap.get


has(key): boolean

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:94

O(1) plus normalize.

K

boolean

IMultimap.has


hasEntry(key, value): boolean

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:99

O(k) in the bucket’s size.

K

V

boolean

IMultimap.hasEntry


keyCount(): number

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:155

The number of distinct normalised keys. O(1).

number

IMultimap.keyCount


keys(): IterableIterator<K>

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:160

Each bucket’s stored key, in its original form.

IterableIterator<K>

IMultimap.keys


storedKey(key): K | undefined

Defined in: packages/data/src/fuzzy/fuzzy-multi-map.ts:176

The key actually stored for whatever key normalises to.

K

K | undefined