containsValue method

  1. @override
bool containsValue(
  1. Object? value
)
override

Whether this map contains the given value.

Returns true if any of the values in the map are equal to value according to the == operator.

final moonCount = <String, int>{'Mercury': 0, 'Venus': 0, 'Earth': 1,
  'Mars': 2, 'Jupiter': 79, 'Saturn': 82, 'Uranus': 27, 'Neptune': 14};
final moons3 = moonCount.containsValue(3); // false
final moons82 = moonCount.containsValue(82); // true

Implementation

@override
bool containsValue(Object? value) {
  if (value == null || value is! V) return false;

  var v = _EntryKey<V, K>(value);
  // ignore: collection_methods_unrelated_type
  var valueEntry = _mapValues[v];
  if (valueEntry == null) return false;

  var eKey = valueEntry.payload;
  var eValue = valueEntry.target;

  if (eKey == null || eValue == null) {
    _map.remove(valueEntry.keyEntry);
    _mapValues.remove(valueEntry);
    ++_unpurgedCount;
    return false;
  }

  return true;
}