Метод dedup
Метод dedup удаляет подряд идущие дубликаты
элементов из вектора. Метод не принимает параметров
и не возвращает значения. Важно понимать, что метод
удаляет только последовательные дубликаты,
поэтому перед вызовом dedup вектор часто
сортируют с помощью метода sort.
Синтаксис
vec.dedup();
Пример
Давайте удалим последовательные дубликаты из вектора:
fn main()
{
let mut res = vec![1, 1, 2, 2, 2, 3, 4, 4, 5];
res.dedup();
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте посмотрим, что произойдёт, если дубликаты не идут подряд:
fn main()
{
let mut res = vec![1, 2, 1, 2, 1, 2];
res.dedup();
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 1, 2, 1, 2]
Пример
Давайте сначала отсортируем вектор, а затем удалим последовательные дубликаты:
fn main()
{
let mut res = vec![3, 1, 2, 1, 3, 2, 1];
res.sort();
res.dedup();
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3]
Пример
Давайте удалим последовательные дубликаты из вектора строк:
fn main()
{
let mut res = vec!["a", "a", "b", "b", "b", "c", "d", "d"];
res.dedup();
println!("{:?}", res);
}
Результат выполнения кода:
["a", "b", "c", "d"]
Смотрите также
-
метод
sort,
который сортирует элементы вектора -
метод
dedup_by,
который удаляет дубликаты по заданному условию -
метод
dedup_by_key,
который удаляет дубликаты по ключу -
метод
retain,
который оставляет только элементы, удовлетворяющие условию