operator []= method

  1. @override
void operator []=(
  1. K key,
  2. V value
)
override

Associates the key with the given value.

If the key was already in the map, its associated value is changed. Otherwise the key/value pair is added to the map.

Implementation

@override
void operator []=(K key, V value) {
  if (!hasObservers) {
    _map[key] = value;
    return;
  }

  var len = _map.length;
  var oldValue = _map[key];

  _map[key] = value;

  if (len != _map.length) {
    notifyPropertyChange(#length, len, _map.length);
    notifyChange(MapChangeRecord<K, V>.insert(key, value));
    _notifyKeysValuesChanged();
  } else if (oldValue != value) {
    notifyChange(MapChangeRecord<K, V>(key, oldValue, value));
    _notifyValuesChanged();
  }
}