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.

By default, null is allowed as a key. It can be forbidden via the isValidKey parameter.

Implemented types

Constructors

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

Properties

entries Iterable<MapEntry<K, V>>
The map entries of this.
read-only, override
isEmpty bool
Returns true if there is no key/value pair in the map.
read-only, override
isNotEmpty bool
Returns true if there is at least one key/value pair in the map.
read-only, override
keys Iterable<K>
The keys of this. [...]
read-only, override
length int
The number of key/value pairs in the map.
read-only, override
values Iterable<V>
The values of this. [...]
read-only, override
hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

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 pairs from the map. [...]
override
containsKey(Object key) bool
Returns true if this map contains the given key. [...]
override
containsValue(Object value) bool
Returns true if this map contains the given value. [...]
override
forEach(void f(K key, V value)) → void
Applies f to each key/value pair of the map. [...]
override
map<K2, V2>(MapEntry<K2, V2> transform(K key, V value)) Map<K2, V2>
Returns a new map where all entries of this map are transformed by the given f function.
override
putIfAbsent(K key, V ifAbsent()) → V
Look up the value of key, or add a new value 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 predicate.
override
retype<K2, V2>() Map<K2, V2>
toString() String
Returns a string representation of this object.
override
update(K key, V update(V value), {V ifAbsent()}) → V
Updates the value for the provided key. [...]
override
updateAll(V update(K key, V value)) → void
Updates all values. [...]
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited

Operators

operator [](Object key) → V
Returns 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
operator ==(dynamic other) bool
The equality operator. [...]
inherited