capypad
0 Tage Serie
rust / beginner
Snippet

Arbeiten mit HashMap Schlüssel-Wert-Speicher

HashMap speichert Schlüssel-Wert-Paare mit O(1) durchschnittlicher Suchzeit. Die entry-API ist leistungsstark für Einfügen-oder-Aktualisieren-Muster. or_insert gibt eine veränderliche Referenz auf den Wert zurück und ermöglicht Änderungen.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use std::collections::HashMap;
 
fn word_count(text: &str) -> HashMap<&str, i32> {
let mut counts = HashMap::new();
for word in text.split_whitespace() {
let count = counts.entry(word).or_insert(0);
*count += 1;
}
counts
}
 
fn main() {
let sentence = "hello world hello rust hello";
let frequencies = word_count(sentence);
for (word, count) in &frequencies {
println!("{}: {}", word, count);
}
}
Erklärung
1
counts.entry(word).or_insert(0)
Holt den Eintrag für den Schlüssel, fügt 0 ein wenn fehlend, gibt veränderliche Referenz zurück
2
*count += 1
Dereferenziert und erhöht den Zähler
3
for (word, count) in &frequencies
Iteriert über Schlüssel-Wert-Paare durch Ausleihen