Add hashmaps
parent
32ca283cb5
commit
0694dfe205
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "hashmap"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
@ -0,0 +1,42 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// Create & Insert Into New Hashmap
|
||||||
|
let mut scores = HashMap::new();
|
||||||
|
scores.insert(String::from("Blue"), 10);
|
||||||
|
scores.insert(String::from("Yellow"), 50);
|
||||||
|
|
||||||
|
// Demonstrate Ownership
|
||||||
|
let field_name = String::from("Favorite color");
|
||||||
|
let field_value = 2;
|
||||||
|
scores.insert(field_name, field_value);
|
||||||
|
// field_name and field_value are now owned by hashmap scores
|
||||||
|
|
||||||
|
// Retrieve Value From Hashmap
|
||||||
|
let option = scores.get(String::from("Favourite color").as_str());
|
||||||
|
|
||||||
|
// Iterate Through Hashmap
|
||||||
|
for (key, value) in &scores {
|
||||||
|
println!("[{}] -> {}", key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overwrite a Value
|
||||||
|
scores.insert(String::from("Blue"), 20);
|
||||||
|
println!("{:?}", scores);
|
||||||
|
|
||||||
|
// Only Insert A Value if Key Has No Value
|
||||||
|
let mut scores2 = HashMap::new();
|
||||||
|
scores2.insert(String::from("Blue"), 10);
|
||||||
|
scores2.entry(String::from("Yellow")).or_insert(50);
|
||||||
|
scores2.entry(String::from("Blue")).or_insert(50);
|
||||||
|
println!("{:?}", scores2);
|
||||||
|
|
||||||
|
// Update Value Based On Pre-existing value
|
||||||
|
let text = "hello world wonderful world";
|
||||||
|
let mut map = HashMap::new();
|
||||||
|
for word in text.split_whitespace() {
|
||||||
|
let count = map.entry(word).or_insert(0);
|
||||||
|
*count += 1;
|
||||||
|
}
|
||||||
|
println!("{:?}", map);
|
||||||
|
}
|
Loading…
Reference in New Issue