Skip to content

HashMap

HashMap 是一种键值对(key-value pair)的集合。对没错,他就是存储键值对的东西。 通过 key,可以获取对应的 value。

简单使用

rust
use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();

    map.insert("color", "red");
    map.insert("size", "10 m^2");

    println!("{}", map.get("color").unwrap());
}

输出: red

支持迭代器

rust
use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();

    map.insert("color", "red");
    map.insert("size", "10 m^2");

    for p in map.iter() {
        println!("{:?}", p);
    }
}

运行结果:

("color", "red")
("size", "10 m^2")

安全地插入

rust 默认在重复插入时,如果已存在这个键,则会覆盖旧值。

如果你想"安全地插入",就是在确认当前不存在某个键时才执行插入动作,可以这样:

rust
map.entry("color").or_insert("red");

若想修改旧值,有更快的方法:

rust
use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert(1, "a");

    if let Some(x) = map.get_mut(&1) {
        *x = "b";
    }
}