How to filter a vector in Rust?
In Rust you can filter vectors by.into_iter().filter()
and then collect it into another vector using .collect::>();
Example of filtering vec in Rust
In below example we will be filtering numbers in vec which can be divided by 2.fn main() {
let numbers: Vec<i32> = vec![
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
];
let even_numbers = numbers
.into_iter()
.filter(|n| n % 2 == 0)
.collect::<Vec<_>>();
println!("{:?}", even_numbers);
}
Output
[2, 4, 6, 8, 10]
Another example of filtering vec in Rust
In below example we will be filtering names in vec which contains letter a.fn main() {
let names = vec![
"William", "Robert", "Joseph", "Jason", "Anna", "Sabrina", "Micheal"
];
let names_with_a = names
.into_iter()
.filter(|n| n.contains("a"))
.collect::<Vec<_>>();
println!("{:?}", names_with_a);
}
Output
["William", "Jason", "Anna", "Sabrina", "Micheal"]