Метод union
Метод union возвращает новое множество HashSet,
которое содержит все уникальные элементы из текущего множества
и переданного множества. Параметром метод принимает ссылку
на другое множество HashSet, с которым нужно объединиться.
Исходные множества при этом не изменяются.
Синтаксис
hashset.union(&other)
Пример
Давайте объединим два множества HashSet
и выведем результат:
use std::collections::HashSet;
fn main()
{
let set1: HashSet<i32> = vec![1, 2, 3].into_iter().collect();
let set2: HashSet<i32> = vec![3, 4, 5].into_iter().collect();
let res: HashSet<&i32> = set1.union(&set2).collect();
println!("{:?}", res);
}
Результат выполнения кода:
{1, 2, 3, 4, 5}
Пример
Давайте объединим два множества, которые не пересекаются между собой:
use std::collections::HashSet;
fn main()
{
let set1: HashSet<i32> = vec![1, 2, 3].into_iter().collect();
let set2: HashSet<i32> = vec![4, 5, 6].into_iter().collect();
let res: HashSet<&i32> = set1.union(&set2).collect();
println!("{:?}", res);
}
Результат выполнения кода:
{1, 2, 3, 4, 5, 6}
Пример
Давайте объединим множество само с собой и убедимся, что дубликаты не появляются:
use std::collections::HashSet;
fn main()
{
let set1: HashSet<i32> = vec![1, 2, 3].into_iter().collect();
let res: HashSet<&i32> = set1.union(&set1).collect();
println!("{:?}", res);
}
Результат выполнения кода:
{1, 2, 3}
Смотрите также
-
класс
HashSet,
который представляет собой множество уникальных элементов -
метод
intersection,
который возвращает пересечение двух множеств -
метод
difference,
который возвращает разность двух множеств -
метод
symmetric_difference,
который возвращает симметричную разность двух множеств