HashMaps
Penyimpanan kunci-nilai
HashMaps adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.
Apa Itu HashMap?
HashMap<K, V> menyimpan pasangan kunci-nilai. Anda mencari nilai berdasarkan kuncinya, bukan berdasarkan posisi.
Anda harus mengimpornya dari pustaka standar.
use std::collections::HashMap;
fn main() {
let map: HashMap<String, i32> = HashMap::new();
println!("{} entries", map.len());
}Mengimpor HashMap
HashMap tidak berada dalam prelude, jadi tambahkan baris ini di bagian atas file Anda:
use std::collections::HashMap;
use std::collections::HashMap;
fn main() {
let scores: HashMap<&str, i32> = HashMap::new();
println!("empty: {}", scores.is_empty());
}Menyisipkan Pasangan
Tambahkan entri dengan insert menggunakan sebuah kunci dan nilai. Map harus berupa mut.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 90);
scores.insert("Bob", 85);
println!("{:?}", scores);
}Mencari Nilai
Gunakan get untuk membaca nilai berdasarkan kunci. Metode ini mengembalikan Option — Some(value) jika ditemukan dan None jika tidak.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 90);
match scores.get("Alice") {
Some(s) => println!("score {}", s),
None => println!("not found"),
}
}Memperbarui Nilai
Memanggil insert dengan kunci yang sudah ada akan mengganti nilai lama.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("count", 1);
map.insert("count", 5); // overwrites
println!("{:?}", map.get("count"));
}Menyisipkan Hanya jika Tidak Ada
API entry dengan or_insert hanya menyisipkan nilai default jika kunci belum ada.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.entry("x").or_insert(10);
map.entry("x").or_insert(99); // ignored, key exists
println!("{:?}", map.get("x"));
}Menghitung dengan entry
Pola klasik: hitung kemunculan dengan mendapatkan referensi mutabel menggunakan or_insert, lalu menambah nilainya.
use std::collections::HashMap;
fn main() {
let text = "a b a c b a";
let mut counts = HashMap::new();
for word in text.split_whitespace() {
let c = counts.entry(word).or_insert(0);
*c += 1;
}
println!("{:?}", counts);
}Melakukan Iterasi pada Entri
Ulangi isi HashMap untuk mengunjungi setiap pasangan kunci-nilai. Urutannya tidak dijamin.
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("Tom", 30);
ages.insert("Sue", 25);
for (name, age) in &ages {
println!("{} is {}", name, age);
}
}Menghapus Entri
Hapus pasangan dengan remove. Metode ini mengembalikan nilai yang dihapus sebagai Option.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("key", 42);
let removed = map.remove("key");
println!("removed {:?}, len {}", removed, map.len());
}Memeriksa Kunci
Gunakan contains_key untuk menguji apakah kunci ada tanpa mengambil nilainya.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("on", true);
println!("{}", map.contains_key("on"));
println!("{}", map.contains_key("off"));
}Nilai Default dengan unwrap_or
Saat membaca, Anda dapat memberikan fallback dengan unwrap_or alih-alih mencocokkan Option.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("a", 1);
let value = map.get("missing").unwrap_or(&0);
println!("{}", value);
}Pemeriksaan Singkat
Ingat kembali cara kerja pencarian dalam HashMap.
Ringkasan
HashMaps dalam Rust:
HashMap<K, V>menyimpan pasangan kunci-nilai; impor daristd::collections.insertmenambahkan atau menimpa;getmengembalikan Option.entry().or_insert()hanya menyisipkan jika entri belum ada.- Lakukan iterasi dengan
for (k, v) in &map.
use std::collections::HashMap;
fn main() {
let mut inventory = HashMap::new();
inventory.insert("apples", 3);
*inventory.entry("apples").or_insert(0) += 2;
println!("{:?}", inventory.get("apples"));
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “HashMaps” gratis?
Ya — teks lengkap “HashMaps” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “HashMaps”?
Penyimpanan kunci-nilai Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?
Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “HashMaps” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?
Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.