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

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

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.