Rust 哈希表
阐述
哈希表是一一映射的键值对的集合,类型为 HashMap<K, V>
,并且可以动态改变大小。
实例
跟 Vec
一样,如果预先知道要存储的 KV
对个数,可以使用 HashMap::with_capacity(capacity)
创建指定大小的 HashMap
,避免频繁的内存分配和拷贝,提升性能。
通过 collect 创建
let teams_map: HashMap<_,_> = teams_list.into_iter().collect();
性质
所有权
对于键 K 和值 V 来说,
- 若类型实现
Copy
特征,该类型会被复制进HashMap
,因此无所谓所有权 - 若没实现
Copy
特征,所有权将被转移给HashMap
中
另外,也可以考虑在哈希表中存储引用,但是这时候必须保证引用的生命周期比哈希表长。
查询
查询使用 .get()
函数,返回 Option<&V>
类型。