WeCodeAcademy

Rust HashSet, BTreeMap and VecDeque

ExampleRust
use std::collections::{BTreeMap, HashSet, VecDeque};

fn main() {
    let mut seen = HashSet::new();
    for n in [3, 1, 3, 2, 1] {
        if !seen.insert(n) {
            println!("duplicate {}", n);
        }
    }
    println!("{}", seen.len());

    let mut scores = BTreeMap::new();
    scores.insert("sam", 22);
    scores.insert("ada", 36);
    scores.insert("lee", 41);
    for (name, age) in &scores {
        println!("{} {}", name, age);
    }

    let mut queue = VecDeque::new();
    queue.push_back("first");
    queue.push_back("second");
    queue.push_front("zeroth");
    println!("{:?}", queue.pop_front());
    println!("{:?}", queue);
}
Output
duplicate 3
duplicate 1
3
ada 36
lee 41
sam 22
Some("zeroth")
["first", "second"]

A BTreeMap keeps its keys sorted, while a HashMap does not promise any order.

Quick check

Which map keeps its keys in sorted order?

Finish the quick check (and any code exercise) to complete this lesson, or mark it done yourself.

Tip: use the left and right arrow keys to move between lessons.