containsValue method
- 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
bool containsValue(Object? value) {
int initialSplayCount = _splayCount;
bool visit(_SplayTreeMapNode<K, V>? node) {
while (node != null) {
if (node.value == value) return true;
if (initialSplayCount != _splayCount) {
throw ConcurrentModificationError(this);
}
if (node._right != null && visit(node._right)) {
return true;
}
node = node._left;
}
return false;
}
return visit(_root);
}