Zum Inhalt springen

HashMap

use std::collections::HashMap;
fn main() {
let mut h = HashMap::new();
h.insert("k1", 0);
let v1 = &h["k1"];
h.insert("k2", 1);
let v2 = &h["k2"];
println!("{} {}", v1, v2);
}
Erklärung anzeigen

h kann nicht mutiert werden (h.insert("k2", 1)), solange eine unveränderliche Referenz (v1) darauf aktiv ist.


use std::collections::HashMap;
fn main() {
let mut h: HashMap<char, Vec<usize>> = HashMap::new();
for (i, c) in "hello!".chars().enumerate() {
h.entry(c).or_insert(Vec::new()).push(i);
}
let mut sum = 0;
for i in h.get(&'l').unwrap() {
sum += *i;
}
println!("{}", sum);
}
Erklärung anzeigen

Dieses Programm speichert einen Vektor von Indizes für jedes Vorkommen eines bestimmten Buchstabens in einer HashMap. Anschließend werden alle Indizes für den Buchstaben ‘l’ summiert, der in der Zeichenkette rust"hello!" an den Indizes 2 und 3 vorkommt.