推荐答案
在 Rust 中,HashMap 是一个常用的集合类型,提供了多种方法来操作键值对。以下是一些常用的方法:
insert(key, value):插入一个键值对到HashMap中。如果键已经存在,则替换旧值并返回旧值;如果键不存在,则插入新值并返回None。get(&key):根据键获取对应的值的引用。如果键不存在,则返回None。get_mut(&key):根据键获取对应的值的可变引用。如果键不存在,则返回None。remove(&key):根据键移除对应的键值对,并返回被移除的值。如果键不存在,则返回None。contains_key(&key):检查HashMap中是否包含指定的键,返回布尔值。len():返回HashMap中键值对的数量。is_empty():检查HashMap是否为空,返回布尔值。iter():返回一个迭代器,遍历HashMap中的所有键值对。keys():返回一个迭代器,遍历HashMap中的所有键。values():返回一个迭代器,遍历HashMap中的所有值。entry(key):返回一个Entry枚举,用于更复杂的插入和更新操作。
本题详细解读
insert(key, value)
insert 方法用于将键值对插入到 HashMap 中。如果键已经存在,则替换旧值并返回旧值;如果键不存在,则插入新值并返回 None。
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert("key1", "value1");
map.insert("key2", "value2");
let old_value = map.insert("key1", "new_value");
assert_eq!(old_value, Some("value1"));get(&key)
get 方法用于根据键获取对应的值的引用。如果键不存在,则返回 None。
let value = map.get("key1");
assert_eq!(value, Some(&"new_value"));get_mut(&key)
get_mut 方法用于根据键获取对应的值的可变引用。如果键不存在,则返回 None。
if let Some(value) = map.get_mut("key1") {
*value = "updated_value";
}
assert_eq!(map.get("key1"), Some(&"updated_value"));remove(&key)
remove 方法用于根据键移除对应的键值对,并返回被移除的值。如果键不存在,则返回 None。
let removed_value = map.remove("key1");
assert_eq!(removed_value, Some("updated_value"));contains_key(&key)
contains_key 方法用于检查 HashMap 中是否包含指定的键,返回布尔值。
assert!(map.contains_key("key2"));
assert!(!map.contains_key("key1"));len()
len 方法用于返回 HashMap 中键值对的数量。
assert_eq!(map.len(), 1);
is_empty()
is_empty 方法用于检查 HashMap 是否为空,返回布尔值。
assert!(!map.is_empty());
iter()
iter 方法返回一个迭代器,遍历 HashMap 中的所有键值对。
for (key, value) in map.iter() {
println!("{}: {}", key, value);
}keys()
keys 方法返回一个迭代器,遍历 HashMap 中的所有键。
for key in map.keys() {
println!("{}", key);
}values()
values 方法返回一个迭代器,遍历 HashMap 中的所有值。
for value in map.values() {
println!("{}", value);
}entry(key)
entry 方法返回一个 Entry 枚举,用于更复杂的插入和更新操作。
map.entry("key3").or_insert("value3");
assert_eq!(map.get("key3"), Some(&"value3"));