метод 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);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-collection/SetMixin/retainAll.html