How to remove duplicate elements from a vector of strings in Rust

1 Answer

0 votes
use std::collections::HashSet;

fn remove_duplicates(elements: Vec<&str>) -> Vec<&str> {
    let mut encountered = HashSet::new();
    let mut result = Vec::new();

    for &element in &elements {
        if encountered.insert(element) {
            result.push(element);
        }
    }

    result
}

fn main() {
    let elements = vec!["aaa", "bbb", "ccc", "ddd", "eee", "aaa", "www", "ddd", "bbb", "aaa"];
    
    println!("{:?}", elements);
    
    println!("{:?}", remove_duplicates(elements));
}


 
    
/*
run:
 
["aaa", "bbb", "ccc", "ddd", "eee", "aaa", "www", "ddd", "bbb", "aaa"]
["aaa", "bbb", "ccc", "ddd", "eee", "www"]
   
*/

 



answered Feb 6, 2025 by avibootz
...