rust-by-practice/solutions/collections/Hashmap.md

73 lines
1.5 KiB
Markdown
Raw Normal View History

2022-03-08 01:07:27 -06:00
1.
```rust
// FILL in the blanks and FIX the erros
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Sunface", 98);
scores.insert("Daniel", 95);
scores.insert("Ashley", 69);
scores.insert("Katie", 58);
// get returns a Option<&V>
let score = scores.get("Sunface");
assert_eq!(score, Some(&98));
if scores.contains_key("Daniel") {
// indexing return a value V
let score = scores["Daniel"];
assert_eq!(score, 95);
scores.remove("Daniel");
}
assert_eq!(scores.len(), 3);
for (name, score) in scores {
println!("The score of {} is {}", name, score)
}
}
```
2.
```rust
use std::collections::HashMap;
fn main() {
let teams = [
("Chinese Team", 100),
("American Team", 10),
("France Team", 50),
];
let mut teams_map1 = HashMap::new();
for team in &teams {
teams_map1.insert(team.0, team.1);
}
let teams_map2: HashMap<_,_> = teams.into_iter().collect();
assert_eq!(teams_map1, teams_map2);
println!("Success!")
}
```
```rust
use std::{collections::HashMap};
fn main() {
let teams = [
("Chinese Team", 100),
("American Team", 10),
("France Team", 50),
];
let mut teams_map1 = HashMap::new();
for team in &teams {
teams_map1.insert(team.0, team.1);
}
let teams_map2 = HashMap::from(teams);
assert_eq!(teams_map1, teams_map2);
println!("Success!")
}
```