addAll method

  1. @override
void addAll(
  1. Map<K, V> other
)
override

Adds all key/value pairs of other to this map.

If a key of other is already in this map, its value is overwritten.

The operation is equivalent to doing this[key] = value for each key and associated value in other. It iterates over other, which must therefore not change during the iteration.

final planets = <int, String>{1: 'Mercury', 2: 'Earth'};
planets.addAll({5: 'Jupiter', 6: 'Saturn'});
print(planets); // {1: Mercury, 2: Earth, 5: Jupiter, 6: Saturn}

Implementation

@override
void addAll(Map<K, V> other) {
  final List<MapEntry<K, V>> added = [];
  final List<MapEntry<K, V>> removed = [];
  for (final entry in other.entries) {
    if (_map.containsKey(entry.key)) {
      removed.add(MapEntry(entry.key, _map[entry.key] as V));
    }
    added.add(entry);
  }
  _map.addAll(other);
  notifyListeners(MapChangeDetails<K, V>(added, removed));
}