description

# retainAll method

void retainAll(

1. Iterable<Object?> elements

)
override

Removes all elements of this set that are not elements in `elements`.

Checks for each element of `elements` whether there is an element in this set that is equal to it (according to `this.contains`), and if so, the equal element in this set is retained, and elements that are not equal to any element in `elements` are removed.

    final characters = <String>{'A', 'B', 'C'};
    characters.retainAll({'A', 'B', 'X'});
    print(characters); // {A, B}

## Implementation

    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);
    }