0Pricing
Learn Rust Coding · Lektion

HashMaps

Schlüssel-Wert-Speicher

HashMaps ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn Rust Coding-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine HashMap?

Eine HashMap<K, V> speichert Schlüssel-Wert-Paare. Sie greifen über den Schlüssel statt über die Position auf Werte zu.

Sie müssen sie aus der Standardbibliothek importieren.

use std::collections::HashMap;

fn main() {
    let map: HashMap<String, i32> = HashMap::new();
    println!("{} entries", map.len());
}

HashMap importieren

HashMap ist nicht im Prelude enthalten. Fügen Sie daher diese Zeile oben in Ihre Datei ein:

  • use std::collections::HashMap;
use std::collections::HashMap;

fn main() {
    let scores: HashMap<&str, i32> = HashMap::new();
    println!("empty: {}", scores.is_empty());
}

Paare einfügen

Fügen Sie Einträge mit insert hinzu, indem Sie einen Schlüssel und einen Wert angeben. Die Map muss mut sein.

use std::collections::HashMap;

fn main() {
    let mut scores = HashMap::new();
    scores.insert("Alice", 90);
    scores.insert("Bob", 85);
    println!("{:?}", scores);
}

Werte nachschlagen

Verwenden Sie get, um einen Wert über seinen Schlüssel zu lesen. Die Methode gibt ein Option zurück: Some(value), wenn der Wert gefunden wurde, andernfalls None.

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"),
    }
}

Einen Wert aktualisieren

Wenn Sie insert mit einem vorhandenen Schlüssel aufrufen, ersetzt der neue Wert den alten.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("count", 1);
    map.insert("count", 5); // overwrites
    println!("{:?}", map.get("count"));
}

Nur einfügen, wenn nicht vorhanden

Die entry-API mit or_insert fügt einen Standardwert nur ein, wenn der Schlüssel fehlt.

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"));
}

Mit entry zählen

Ein klassisches Muster: Zählen Sie Vorkommen, indem Sie mit or_insert eine veränderliche Referenz abrufen und sie erhöhen.

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);
}

Einträge iterieren

Durchlaufen Sie eine HashMap, um jedes Schlüssel-Wert-Paar zu besuchen. Die Reihenfolge ist nicht garantiert.

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);
    }
}

Einträge entfernen

Löschen Sie ein Paar mit remove. Die Methode gibt den entfernten Wert als Option zurück.

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());
}

Auf einen Schlüssel prüfen

Verwenden Sie contains_key, um zu prüfen, ob ein Schlüssel vorhanden ist, ohne seinen Wert abzurufen.

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"));
}

Standardwert mit unwrap_or

Beim Lesen können Sie mit unwrap_or einen Ersatzwert angeben, statt das Option abzugleichen.

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);
}

Kurze Überprüfung

Rufen Sie sich ins Gedächtnis, wie HashMap-Suchen funktionieren.

Zusammenfassung

HashMaps in Rust:

  • HashMap<K, V> speichert Schlüssel-Wert-Paare; importieren Sie sie aus std::collections.
  • insert fügt hinzu oder überschreibt; get gibt ein Option zurück.
  • entry().or_insert() fügt nur ein, wenn der Schlüssel fehlt.
  • Iterieren Sie mit 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"));
}

Häufig gestellte Fragen

Ist die Lektion „HashMaps“ kostenlos?

Ja — der vollständige Text von „HashMaps“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn Rust Coding-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „HashMaps“?

Schlüssel-Wert-Speicher Du übst Learn Rust Coding mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn Rust Coding zu starten?

Keine Vorkenntnisse erforderlich. Learn Rust Coding auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „HashMaps“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn Rust Coding-Lektion Code schreiben und ausführen?

Ja. Jede Learn Rust Coding-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Vektoren
  2. Strings und &str
  3. HashMaps
  4. Sammlungen durchlaufen
← Zurück zu Learn Rust Coding