HashMap di Rust
HashMap<K, V> menyimpan data key-value pairs, mirip object di JavaScript atau dictionary di Python.
Import & Membuat HashMap
use std::collections::HashMap;
// Cara 1: new + insert
let mut skor: HashMap<&str, i32> = HashMap::new();
skor.insert("Alice", 95);
skor.insert("Bob", 82);
skor.insert("Charlie", 78);
// Cara 2: from array of tuples
let skor: HashMap<&str, i32> = HashMap::from([
("Alice", 95),
("Bob", 82),
]);
Akses Nilai
// get() return Option<&V>
if let Some(nilai) = skor.get("Alice") {
println!("Alice: {}", nilai);
}
// Atau dengan unwrap (hati-hati panic!)
let nilai = skor["Alice"]; // bisa panic jika key tidak ada
Iterasi
for (nama, nilai) in &skor {
println!("{}: {}", nama, nilai);
}
Entry API
// Insert hanya jika key belum ada
skor.entry("Diana").or_insert(90);
// Update berdasarkan nilai lama
let counter = skor.entry("Alice").or_insert(0);
*counter += 10; // Alice sekarang 105
Method Berguna
println!("{}", skor.len()); // jumlah entries
println!("{}", skor.contains_key("Bob")); // true
skor.remove("Bob"); // hapus entry