0Pricing
Learn Rust Coding · Pelajaran

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 dari std::collections.
  • insert menambahkan atau menimpa; get mengembalikan 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.

Semua pelajaran dalam kursus ini

  1. Vektor
  2. String dan &str
  3. HashMaps
  4. Melakukan Iterasi pada Koleksi
← Kembali ke Learn Rust Coding