# MapMixin<K, V> class

Mixin implementing a Map.

This mixin has a basic implementation of all but five of the members of Map. A basic `Map` class can be implemented by mixin in this class and implementing `keys`, `operator[]`, `operator[]=`, `remove` and `clear`. The remaining operations are implemented in terms of these five.

The `keys` iterable should have efficient Iterable.length and Iterable.contains operations, and it should catch concurrent modifications of the keys while iterating.

A more efficient implementation is usually possible by overriding some of the other members as well.

Implemented types
  - Map<K, V>
Implementers
  - MapBase
  - SplayTreeMap

## Constructors

MapMixin()

## 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>> newEntries) → void
  Adds all key/value pairs of `newEntries` to this map. [...]
  override
cast<RK, RV>() → Map<RK, RV>
  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 action(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
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