Метод retainAll
Удаляет все элементы этого множества, которые не являются элементами в 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);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Set/retainAll.html