contains方法
- Object? element
override
集合是否包含等于element
的元素。
此操作将按顺序检查每个元素是否等于element
,除非有更高效的方法来找到等于element
的元素。在找到第一个相等的元素时停止迭代。
用于确定element
是否等于可迭代元素的相等性默认为元素的Object.==。
某些类型的可迭代可能对其元素使用不同的相等性。例如,一个Set可能有一个自定义的相等性(见Set.identity),其contains
方法使用。同样,Map.keys调用返回的Iterable
应使用与Map
用于键相同的相等性。
示例
final gasPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn'};
final containsOne = gasPlanets.keys.contains(1); // true
final containsFive = gasPlanets.keys.contains(5); // false
final containsJupiter = gasPlanets.values.contains('Jupiter'); // true
final containsMercury = gasPlanets.values.contains('Mercury'); // false
实现
bool contains(Object? element) {
int length = this.length;
for (int i = 0; i < length; i++) {
if (this[i] == element) return true;
if (length != this.length) {
throw ConcurrentModificationError(this);
}
}
return false;
}