How to Remove Items from Set based on a Condition in Rust


How to Remove Items from Set based on a Condition in Rust ?

Answer

To remove items from a set based on a condition in Rust, you can use the retain method, which allows you to keep only the elements that satisfy a given predicate.



✐ Examples

1 Removing Even Numbers from Integer Set

In this example,

  1. We include the necessary crate for sets: use std::collections::HashSet;.
  2. We create a HashSet<i32> named number_set and initialize it with the values [1, 2, 3, 4, 5].iter().cloned().collect().
  3. We use the retain method with a lambda function to define the condition for removing elements. The lambda function |&x| x % 2 != 0 keeps only the odd numbers in the set.
  4. Finally, we iterate over the set and print the remaining elements to the console.

Rust Program

use std::collections::HashSet;

fn main() {
    let mut number_set: HashSet&lt;i32&gt; = [1, 2, 3, 4, 5].iter().cloned().collect();
    number_set.retain(|&x| x % 2 != 0);
    for num in &number_set {
        print!("{} ", num);
    }
    println!();
}

Output

1 3 5 

2 Removing Short Strings from String Set

In this example,

  1. We include the necessary crate for sets: use std::collections::HashSet;.
  2. We create a HashSet<String> named string_set and initialize it with the values ["apple", "banana", "cherry", "date", "grape"].iter().cloned().map(String::from).collect().
  3. We use the retain method with a lambda function to define the condition for removing elements. The lambda function |s| s.len() >= 6 keeps only the strings with a length of 6 or more characters.
  4. Finally, we iterate over the set and print the remaining elements to the console.

Rust Program

use std::collections::HashSet;

fn main() {
    let mut string_set: HashSet&lt;String&gt; = ["apple", "banana", "cherry", "date", "grape"].iter().cloned().map(String::from).collect();
    string_set.retain(|s| s.len() &gt;= 6);
    for str in &string_set {
        print!("{} ", str);
    }
    println!();
}

Output

banana cherry 

Summary

In this tutorial, we learned How to Remove Items from Set based on a Condition in Rust language with well detailed examples.




More Rust Sets Tutorials

  1. How to create an Empty Set in Rust ?
  2. How to Initialize a Set in Rust ?
  3. How to Get Length of a Set in Rust ?
  4. How to create a Set of size N in Rust ?
  5. How to create a Set of Numbers from 1 to N in Rust ?
  6. How to create a Set of integers in Rust ?
  7. How to create a Set of Strings in Rust ?
  8. How to Access Items in a Set in Rust ?
  9. How to get a Random Item in a Set in Rust ?
  10. How to Iterate Over a Set in Rust ?
  11. How to check if a Set is Empty in Rust ?
  12. How to check if a Set is Not Empty in Rust ?
  13. How to get Subset from a Set in Rust ?
  14. How to check if a Specific Item is present in the Set in Rust ?
  15. How to check if a Set contains all the items of Another Set in Rust ?
  16. How to Sort Items of a Set in Rust ?
  17. How to Copy a Set in Rust ?
  18. How to add an Item to a Set in Rust ?
  19. How to find Union of Two Sets in Rust ?
  20. How to find Intersection of Two Sets in Rust ?
  21. How to check if Two Sets are Equal in Rust ?
  22. How to Convert a Set of Integers to a Set of Strings in Rust ?
  23. How to Convert a Set of Strings to a Set of Integers in Rust ?
  24. How to Convert a Set of Floats to a Set of Strings in Rust ?
  25. How to Convert a Set of Strings to a Set of Floats in Rust ?
  26. How to Filter Items of a Set based on a Condition in Rust ?
  27. How to Remove Specific Item from a Set in Rust ?
  28. How to Remove Items from Set based on a Condition in Rust ?
  29. How to create a Set of Sets in Rust ?