Eine HashMap erstellen
Fügen Sie Werte ein und suchen Sie sie über Schlüssel.
Eine HashMap erstellen ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 1 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 speichert Daten als Schlüssel-Wert-Paare. Sie greifen über den Schlüssel statt über einen Index auf die Daten zu.
Stellen Sie sich ein Telefonbuch vor: Ein Name (Schlüssel) verweist auf eine Nummer (Wert). HashMaps eignen sich perfekt für schnelle Zugriffe über einen aussagekräftigen Schlüssel.
HashMap importieren
Im Gegensatz zu Vec und String befindet sich HashMap nicht im Prelude. Sie müssen den Typ in den Gültigkeitsbereich aufnehmen.
Fügen Sie oben in Ihrer Datei eine use-Zeile ein. Dadurch ist der Name im gesamten Modul verfügbar.
use std::collections::HashMap;
fn main() {
let scores: HashMap<String, i32> = HashMap::new();
println!("empty map len: {}", scores.len());
}Paare einfügen
Verwenden Sie insert, um einen Schlüssel und seinen Wert hinzuzufügen. Wenn der Schlüssel bereits existiert, wird der alte Wert ersetzt.
Die Map muss als mut deklariert sein, damit Einfügungen möglich sind.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 50);
scores.insert("Bob", 30);
println!("{} players", scores.len());
}Typinferenz
Den Typ müssen Sie nur selten angeben. Rust leitet HashMap<&str, i32> aus den ersten Aufrufen von insert ab.
Hier sind die Schlüssel String-Slices und die Werte Ganzzahlen; beides ergibt sich aus der Verwendung.
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("Sam", 28);
ages.insert("Mia", 34);
println!("Sam is {}", ages["Sam"]);
}Werte abrufen
Die Methode get gibt ein Option zurück. Sie erhalten Some(&value), wenn der Schlüssel existiert, oder None, wenn nicht.
Dadurch müssen Sie den Fall eines fehlenden Schlüssels sicher behandeln.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 50);
match scores.get("Alice") {
Some(v) => println!("score: {}", v),
None => println!("no score"),
}
}Indexzugriff oder get
Sie können mit map[key] per Index zugreifen, aber das führt zu einer Panik, wenn der Schlüssel fehlt.
Bevorzugen Sie get, wenn ein Schlüssel möglicherweise nicht existiert. Verwenden Sie den Indexzugriff nur, wenn Sie sicher sind, dass der Schlüssel vorhanden ist.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("x", 1);
// m["y"] would panic!
let v = m.get("y").copied().unwrap_or(0);
println!("y = {}", v);
}Einen Wert aktualisieren
Wenn Sie insert mit einem vorhandenen Schlüssel aufrufen, überschreiben Sie den alten Wert.
Der vorherige Wert wird in ein Option verpackt zurückgegeben, sodass Sie ihn bei Bedarf untersuchen können.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("k", 1);
let old = m.insert("k", 9);
println!("old = {:?}, now = {}", old, m["k"]);
}Schlüssel prüfen
Verwenden Sie contains_key, um zu prüfen, ob ein Schlüssel existiert, ohne seinen Wert abzurufen.
Die Methode gibt einen einfachen bool zurück, was in if-Bedingungen praktisch ist.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("on", true);
if m.contains_key("on") {
println!("key exists");
}
}Einträge entfernen
Die Methode remove löscht einen Schlüssel und gibt seinen Wert als Option zurück.
Wenn der Schlüssel nicht vorhanden war, erhalten Sie None; das Entfernen ist daher immer sicher.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("a", 1);
let removed = m.remove("a");
println!("removed {:?}, len {}", removed, m.len());
}Eine Map durchlaufen
Eine for-Schleife über eine HashMap liefert Tupel aus (key, value) als Referenzen.
Die Reihenfolge ist nicht festgelegt und kann sich zwischen den Durchläufen ändern, da das Hashing die Positionen verteilt.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("a", 1);
m.insert("b", 2);
for (k, v) in &m {
println!("{} -> {}", k, v);
}
}Ownership von Schlüsseln
Wenn Sie eigene Werte wie einen String einfügen, übernimmt die Map deren Ownership.
Nach dem Einfügen können Sie die Variable nicht erneut verwenden, es sei denn, Sie haben sie zuvor geklont.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
let name = String::from("Alice");
m.insert(name, 50);
// name is moved here; m owns it now
println!("{}", m["Alice"]);
}Kurzer Test
Sie möchten einen Wert abrufen, aber der Schlüssel fehlt möglicherweise.
Zusammenfassung
Sie haben gelernt, eine HashMap zu erstellen, Paare einzufügen und Werte mit get oder per Index abzurufen.
Außerdem haben Sie contains_key, remove und Iteration kennengelernt sowie erfahren, wie die Map die Ownership eingefügter Schlüssel übernimmt.
Häufig gestellte Fragen
Ist die Lektion „Eine HashMap erstellen“ kostenlos?
Ja — der vollständige Text von „Eine HashMap erstellen“ 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 „Eine HashMap erstellen“?
Fügen Sie Werte ein und suchen Sie sie über Schlüssel. 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 1 von 4.
Wie lange dauert die Lektion „Eine HashMap erstellen“?
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
- Eine HashMap erstellen
- Entry-API und Standardwerte
- Mit HashSet arbeiten
- Zählen und gruppieren