Метод retainAll
Метод retainAll класса Set оставляет в множестве только те элементы, которые присутствуют в переданной коллекции. Все остальные элементы удаляются. В первый параметр мы передаем коллекцию (например, другое множество или список), элементы которой нужно сохранить. Метод изменяет исходное множество и не возвращает результат.
Синтаксис
set.retainAll(elements)
Пример
Давайте оставим в множестве только те элементы, которые есть в другом множестве:
void main()
{
Set<String> set1 = {'a', 'b', 'c', 'd', 'e'};
Set<String> set2 = {'b', 'd', 'e'};
set1.retainAll(set2);
print(set1);
}
Результат выполнения кода:
{b, d, e}
Пример
Давайте передадим в метод список вместо множества и посмотрим на результат:
void main()
{
Set<int> set = {1, 2, 3, 4, 5};
List<int> list = [1, 3, 5];
set.retainAll(list);
print(set);
}
Результат выполнения кода:
{1, 3, 5}
Пример
Если в переданной коллекции нет элементов исходного множества, то множество станет пустым:
void main()
{
Set<String> set = {'a', 'b', 'c'};
set.retainAll({'x', 'y', 'z'});
print(set);
}
Результат выполнения кода:
{}
Смотрите также
-
метод
removeAll,
который удаляет все элементы коллекции -
метод
retainWhere,
который оставляет элементы по условию -
метод
containsAll,
который проверяет наличие всех элементов -
метод
intersection,
который возвращает пересечение множеств