Rust 简明教程

Rust HashMap

1. HashMap

HashMap(哈希映射)是一个包含“键/值”对(key/value pairs)的集合。

当您希望存储特定的值并通过键(key)来快速查找它们时,HashMaps 是极佳的选择。

要使用 HashMap,您必须先从 Rust 的标准库中将其导入:

use std::collections::HashMap;

2. 创建一个 HashMap

您可以创建一个全新的、空的 HashMap,然后向其中添加元素:

示例

// 导入 HashMap
use std::collections::HashMap;

fn main() {
  // 创建一个名为 capitalCities 的 HashMap
  let mut capitalCities = HashMap::new();

  // 添加键和值 (国家, 城市)
  capitalCities.insert("England", "London");
  capitalCities.insert("Germany", "Berlin");
  capitalCities.insert("Norway", "Oslo");

  println!("{:?}", capitalCities);
}

3. 访问值

您可以使用 .get() 方法,通过键来访问 HashMap 中的对应值:

示例

let mut capitalCities = HashMap::new();

capitalCities.insert("England", "London");
capitalCities.insert("Germany", "Berlin");
capitalCities.insert("Norway", "Oslo");

if let Some(city) = capitalCities.get("England") {
  println!("The capital of England is {}.", city);
} else {
  println!("England is not in the map.");
}

4. 更新值

如果您使用一个已经存在的键插入新的值,旧的值将会被新的值所替换:

示例

let mut capitalCities = HashMap::new();

capitalCities.insert("England", "London");
capitalCities.insert("England", "Berlin");

println!("{:?}", capitalCities);

5. 移除值

要从 HashMap 中移除某个键,请使用 .remove() 方法:

示例

let mut capitalCities = HashMap::new();

// 添加键和值 (国家, 城市)
capitalCities.insert("England", "London");
capitalCities.insert("Germany", "Berlin");
capitalCities.insert("Norway", "Oslo");

// 移除键 "England"
capitalCities.remove("England");

println!("{:?}", capitalCities);

6. 遍历 HashMap

您可以使用 for 循环遍历其中所有的键/值对:

示例

let mut capitalCities = HashMap::new();

// 添加键和值 (国家, 城市)
capitalCities.insert("England", "London");
capitalCities.insert("Germany", "Berlin");
capitalCities.insert("Norway", "Oslo");

// 遍历 HashMap
for (country, city) in &capitalCities {
  println!("The capital of {} is {}.", country, city);
}

7. 为什么要使用 HashMaps?

  • 用于按键(key)存储数据
  • 用于快速查找特定值
  • 用于对相关数据进行分组(例如:姓名和分数)

注意: HashMaps 要求键必须是唯一的。再次插入相同的键将会覆盖原有的旧值。