How to find the Item with Minimum Number of Occurrences in a Vector in Rust


How to find the Item with Minimum Number of Occurrences in a Vector in Rust ?

Answer

To find the item with the minimum number of occurrences in a Vector in Rust, you can use a HashMap to count the occurrences of each item and then find the item with the minimum count.



✐ Examples

1 Find Item with Minimum Occurrences in a Vector of Strings

In this example,

  1. We start by importing the necessary collections: std::collections::HashMap.
  2. We create a vector named vec containing several string elements.
  3. We create a HashMap named counts to store the occurrences of each string in the vector. The keys of the HashMap will be the strings, and the values will be their counts.
  4. We use a for loop to iterate through each element in the vector. For each element, we increment its count in the HashMap using the entry method to handle missing keys.
  5. We initialize two variables, min_item and min_count, to keep track of the item with the minimum occurrences and its count. min_count is initialized to usize::MAX to ensure any count will be lower initially.
  6. We iterate through the HashMap to find the item with the lowest count. If we find an item with a count lower than min_count, we update min_item and min_count.
  7. Finally, we print the item with the minimum number of occurrences to standard output using println!.

Rust Program

use std::collections::HashMap;

fn main() {
    // Step 2: Create a vector of strings
    let vec = vec!["apple", "banana", "apple", "orange", "banana", "apple", "kiwi"];
    
    // Step 3: Create a HashMap to count occurrences
    let mut counts = HashMap::new();
    
    // Step 4: Count occurrences of each item in the vector
    for item in vec {
        *counts.entry(item).or_insert(0) += 1;
    }
    
    // Step 5: Initialize variables to find the item with the minimum occurrences
    let mut min_item = "";
    let mut min_count = usize::MAX;
    
    // Step 6: Iterate through the HashMap to find the item with the lowest count
    for (item, &count) in &counts {
        if count < min_count {
            min_item = item;
            min_count = count;
        }
    }
    
    // Step 7: Print the item with the minimum occurrences
    println!("Item with minimum occurrences: {}", min_item);
}

Output

Item with minimum occurrences: kiwi

2 Find Item with Minimum Occurrences in a Vector of Integers

In this example,

  1. We start by importing the necessary collections: std::collections::HashMap.
  2. We create a vector named vec containing several integer elements.
  3. We create a HashMap named counts to store the occurrences of each integer in the vector. The keys of the HashMap will be the integers, and the values will be their counts.
  4. We use a for loop to iterate through each element in the vector. For each element, we increment its count in the HashMap using the entry method to handle missing keys.
  5. We initialize two variables, min_item and min_count, to keep track of the item with the minimum occurrences and its count. min_count is initialized to usize::MAX to ensure any count will be lower initially.
  6. We iterate through the HashMap to find the item with the lowest count. If we find an item with a count lower than min_count, we update min_item and min_count.
  7. Finally, we print the item with the minimum number of occurrences to standard output using println!.

Rust Program

use std::collections::HashMap;

fn main() {
    // Step 2: Create a vector of integers
    let vec = vec![1, 2, 3, 1, 2, 1, 4, 1, 5, 1];
    
    // Step 3: Create a HashMap to count occurrences
    let mut counts = HashMap::new();
    
    // Step 4: Count occurrences of each item in the vector
    for item in vec {
        *counts.entry(item).or_insert(0) += 1;
    }
    
    // Step 5: Initialize variables to find the item with the minimum occurrences
    let mut min_item = 0;
    let mut min_count = usize::MAX;
    
    // Step 6: Iterate through the HashMap to find the item with the lowest count
    for (&item, &count) in &counts {
        if count < min_count {
            min_item = item;
            min_count = count;
        }
    }
    
    // Step 7: Print the item with the minimum occurrences
    println!("Item with minimum occurrences: {}", min_item);
}

Output

Item with minimum occurrences: 3

Summary

In this tutorial, we learned How to find the Item with Minimum Number of Occurrences in a Vector in Rust language with well detailed examples.




More Rust Vectors Tutorials

  1. How to create an Empty Vector in Rust ?
  2. How to Initialize a Vector in Rust ?
  3. How to Get Length of a Vector in Rust ?
  4. How to create a Vector of Size N in Rust ?
  5. How to create a Vector of Numbers from 1 to N in Rust ?
  6. How to create a Vector of Integers in Rust ?
  7. How to create a Vector of Strings in Rust ?
  8. How to create a Vector of Empty Vectors in Rust ?
  9. How to Access Items in a Vector in Rust ?
  10. How to get Item in a Vector at a Specific Index in Rust ?
  11. How to get First Item in a Vector in Rust ?
  12. How to get Last Item in a Vector in Rust ?
  13. How to Iterate Over a Vector in Rust ?
  14. How to Iterate Over a Vector with Index in Rust ?
  15. How to Iterate Over a Vector in Reverse Order in Rust ?
  16. How to check if a Vector is Empty in Rust ?
  17. How to check if a Vector is Not Empty in Rust ?
  18. How to get Sub Vector in Rust ?
  19. How to get the Index of Specified Item in a Vector in Rust ?
  20. How to check if a Specific Item is present in the Vector in Rust ?
  21. How to check if a Vector contains all the items of Another Vector in Rust ?
  22. How to count the Number of Occurrences of Specific Item in the Vector in Rust ?
  23. How to find the Item with Maximum Number of Occurrences in a Vector in Rust ?
  24. How to find the Item with Minimum Number of Occurrences in a Vector in Rust ?
  25. How to Sort a Vector in Rust ?
  26. How to Sort a Vector in Ascending Order in Rust ?
  27. How to Sort a Vector in Descending Order in Rust ?
  28. How to create a Two Dimensional Vector in Rust ?
  29. How to Iterate over a Two Dimensional Vector in Rust ?
  30. How to create a Three Dimensional Vector in Rust ?
  31. How to Copy a Vector in Rust ?
  32. How to Split a Vector in Rust ?
  33. How to Join Vectors in Rust ?
  34. How to Append an Item to a Vector in Rust ?
  35. How to Insert an Item at Specific Index in a Vector in Rust ?
  36. How to Append a Vector to another Vector in Rust ?
  37. How to Concatenate Two Vectors in Rust ?
  38. How to check if Two Vectors are Equal in Rust ?
  39. How to check if Two Vectors have Same Items (Regardless of Order) in Rust ?
  40. How to Convert a Vector of Integers to a Vector of Strings in Rust ?
  41. How to Convert a Vector of Strings to a Vector of Integers in Rust ?
  42. How to Convert a Vector of Floats to a Vector of Strings in Rust ?
  43. How to Convert a Vector of Strings to a Vector of Floats in Rust ?
  44. How to Reverse a Vector in Rust ?
  45. How to Shuffle a Vector in Rust ?
  46. How to Slice a Vector in Rust ?
  47. How to get First N Items from a Vector in Rust ?
  48. How to get Last N Items from a Vector in Rust ?
  49. How to Rotate Items in a Vector in Rust ?
  50. How to Filter Items of a Vector based on a Condition in Rust ?
  51. How to Remove Duplicates in a Vector in Rust ?
  52. How to Remove Item at a Specific Index from a Vector in Rust ?
  53. How to Remove Specific Item from a Vector in Rust ?
  54. How to Remove Items from Vector based on a Condition in Rust ?
  55. How to Sort a String Vector in Dictionary Order in Rust ?
  56. How to Concatenate Strings in Vector in Rust ?
  57. How to create a Vector of Vectors in Rust ?