我有一个键类型为(i64,usize)
的HashMap。
假设我有一个使用案例,只使用Key元组的第一部分从这个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)