CanonicalizedMap<C, K, V> class

A map whose keys are converted to canonical values of type C.

This is useful for using case-insensitive String keys, for example. It's more efficient than a LinkedHashMap with a custom equality operator because it only canonicalizes each key once, rather than doing so for each comparison.

Implemented types
Available extensions

Constructors

CanonicalizedMap(C canonicalize(K key), {bool isValidKey(K key)?})
Creates an empty canonicalized map.
CanonicalizedMap.from(Map<K, V> other, C canonicalize(K key), {bool isValidKey(K key)?})
Creates a canonicalized map that is initialized with the key/value pairs of other.
CanonicalizedMap.fromEntries(Iterable<MapEntry<K, V>> entries, C canonicalize(K key), {bool isValidKey(K key)?})
Creates a canonicalized map that is initialized with the key/value pairs of entries.

Properties

entries → Iterable<MapEntry<K, V>>
The map entries of this Map.
no setteroverride
genericTypeKey → Type

Available on Map<K, V>, provided by the GenericTypeOnMapExt extension

Returns the generic type of the map's keys.
no setter
genericTypeValue → Type

Available on Map<K, V>, provided by the GenericTypeOnMapExt extension

Returns the generic type of the map's values.
no setter
hashCode → int
The hash code for this object.
no setterinherited
isEmpty → bool
Whether there is no key/value pair in the map.
no setteroverride
isNotEmpty → bool
Whether there is at least one key/value pair in the map.
no setteroverride
keys → Iterable<K>
The keys of this Map.
no setteroverride
length → int
The number of key/value pairs in the map.
no setteroverride
nonNullKeys → Map<K, V>

Available on Map<K?, V>, provided by the NonNullKeysOnMapExt extension

Returns a new map with all non-null keys and values.
no setter
nonNulls → Map<K, V>

Available on Map<K?, V?>, provided by the NonNullsOnMapExt extension

Returns a new map with all non-null keys and values.
no setter
nonNullValues → Map<K, V>

Available on Map<K, V?>, provided by the NonNullValuesOnMapExt extension

Returns a new map with all non-null keys and values.
no setter
nullIfEmpty → Map<T1, T2>?

Available on Map<T1, T2>, provided by the NullIfEmptyOnMapExt extension

Returns null if the Map is empty, otherwise returns the Map.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
unmodifiable → Map<K, V>

Available on Map<K, V>, provided by the UnmodifiableOnMapExt extension

no setter
values → Iterable<V>
The values of this Map.
no setteroverride

Methods

addAll(Map<K, V> other) → void
Adds all key/value pairs of other to this map.
override
addEntries(Iterable<MapEntry<K, V>> entries) → void
Adds all key/value pairs of newEntries to this map.
override
cast<K2, V2>() → Map<K2, V2>
Provides a view of this map as having RK keys and RV instances, if necessary.
override
clear() → void
Removes all entries from the map.
override
containsKey(Object? key) → bool
Whether this map contains the given key.
override
containsValue(Object? value) → bool
Whether this map contains the given value.
override
copy() → CanonicalizedMap<C, K, V>
Copies this CanonicalizedMap instance without recalculating the canonical values of the keys.
deepGet(String path, {String separator = '.'}) → dynamic

Available on Map, provided by the DeepGetOnMapExt extension

Safely retrieves and converts a value from a nested data structure using a dot-separated path.
deepGetFromSegments(Iterable pathSegments) → dynamic

Available on Map, provided by the DeepGetOnMapExt extension

Safely retrieves and converts a value from a nested data structure using a list of path pathSegments.
filterByExcludedKeys(List<K> excludedKeys) → Map<K, V>

Available on Map<K, V>, provided by the MapWithDefaultOnMapExt extension

Filters the map's entries based on a list of excluded keys. Returns a new map excluding the key-value pairs where the key is found within the excludedKeys.
filterByExcludedValues(List<V> excludedValues) → Map<K, V>

Available on Map<K, V>, provided by the MapWithDefaultOnMapExt extension

Filters the map's entries based on a list of excluded values. Returns a new map excluding the key-value pairs where the value is found within the excludedValues.
filterByIncludedKeys(List<K> includedKeys) → Map<K, V>

Available on Map<K, V>, provided by the MapWithDefaultOnMapExt extension

Filters the map's entries based on a list of included keys. Returns a new map containing only the key-value pairs where the key is found within the includedKeys.
filterByIncludedValues(List<V> includedValues) → Map<K, V>

Available on Map<K, V>, provided by the MapWithDefaultOnMapExt extension

Filters the map's entries based on a list of included values. Returns a new map containing only the key-value pairs where the value is found within the includedValues.
forEach(void f(K, V)) → void
Applies action to each key/value pair of the map.
override
map<K2, V2>(MapEntry<K2, V2> transform(K, V)) → Map<K2, V2>
Returns a new map where all entries of this map are transformed by the given convert function.
override
mapKeys<K2>(K2 mapper(K1 key)) → Map<K2, V1>

Available on Map<K1, V1>, provided by the MapKeysAndValyesOnMapExt extension

Returns a new map with new keys and the same values.
mapValues<V2>(V2 mapper(V1 value)) → Map<K1, V2>

Available on Map<K1, V1>, provided by the MapKeysAndValyesOnMapExt extension

Returns a new map with the same keys and new values.
mapWithDefault(dynamic defaultValue) → Map<K, dynamic>

Available on Map<K, V>, provided by the MapWithDefaultOnMapExt extension

Returns a new map with the same keys as this map but with the specified defaultValue for all values that are null. If defaultValue is null, it simply returns a copy of the original map.
maybeAdd(Map<T1, T2>? add) → Map<T1, T2>

Available on Map<T1, T2>, provided by the MaybeAddToMapExt extension

Adds add to this if it is not null.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
putIfAbsent(K key, V ifAbsent()) → V
Look up the value of key, or add a new entry if it isn't there.
override
remove(Object? key) → V?
Removes key and its associated value, if present, from the map.
override
removeWhere(bool test(K key, V value)) → void
Removes all entries of this map that satisfy the given test.
override
retype<K2, V2>() → Map<K2, V2>
setNestedValue(List keyPath, dynamic value, {bool overwriteIntermediates = false}) → void

Available on Map, provided by the SetNestedValueOnMapExt extension

Sets a value in a nested map structure, creating intermediate maps as needed.
toMap() → Map<K, V>
Creates a Map<K,V> (with the original key values). See toMapOfCanonicalKeys.
toMapOfCanonicalKeys() → Map<C, V>
Creates a Map<C,V> (with the canonicalized keys). See toMap.
toString() → String
A string representation of this object.
override
traverse(List keys, {dynamic newValue}) → dynamic

Available on Map<K, V>, provided by the TraverseMapOnMapExt extension

See traverseMap.
update(K key, V update(V), {V ifAbsent()?}) → V
Updates the value for the provided key.
override
updateAll(V update(K key, V value)) → void
Updates all values.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited
operator [](Object? key) → V?
The value for the given key, or null if key is not in the map.
override
operator []=(K key, V value) → void
Associates the key with the given value.
override