我有一个密钥类型为(i64,usize)
的HashMap
假设我有一个仅使用键元组的第一部分从该HashMap检索数据的用例.
例如,我有这样的样本数据
(-1, 1): "1st -1 Resident",
(1, 1): "1st 1 Resident",
(1, 0): "Oth 1 Resident",
(1, 2): "2nd 1 Resident",
(-1, 2): "2nd -1 Resident",
(-1, 0): "Oth -1 Resident"
我想检索或操作键元组的第一个条目为-1
的所有数据.或者就上面的例子而言,所有-1
岁的居民.
我目前正在做这件事,遍历Hashmap中的所有条目,并手动判断键元组的第一部分.
use std::collections::HashMap;
fn main(){
let mut hmap: HashMap<(i64,usize), &str> = HashMap::new();
hmap.insert((-1,0), "Oth -1 Resident");
hmap.insert((-1,1), "1st -1 Resident");
hmap.insert((-1,2), "2nd -1 Resident");
hmap.insert((1,0), "Oth 1 Resident");
hmap.insert((1,1), "1st 1 Resident");
hmap.insert((1,2), "2nd 1 Resident");
for (k,v) in &hmap {
if k.0 == -1 {
println!("{:?}",v);
}
}
}
有没有更好的方法来做这件事? 以下是我当前工作的链接(playground link)