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 要求键必须是唯一的。再次插入相同的键将会覆盖原有的旧值。