retainAll 方法
override
从当前集合中移除所有不在 elements
中的元素。
检查 elements
中的每个元素,看当前集合中是否有与之相等的元素(根据 this.contains
进行比较),如果有的话,则保留这个集合中的相等元素,并移除所有与 elements
中任何元素不相等的元素。
final characters = <String>{'A', 'B', 'C'};
characters.retainAll({'A', 'B', 'X'});
print(characters); // {A, B}
实现
void retainAll(Iterable<Object?> elements) {
// Create a copy of the set, remove all of elements from the copy,
// then remove all remaining elements in copy from this.
Set<E> toRemove = toSet();
for (Object? o in elements) {
toRemove.remove(o);
}
removeAll(toRemove);
}